Wiktionary igwiktionary https://ig.wiktionary.org/wiki/Ihu_mb%E1%BB%A5 MediaWiki 1.47.0-wmf.3 case-sensitive Midia Ọpụrụiche Ńkàtá Ojiarụ Ńkàtá ojiarụ Wiktionary Ńkàtá Wiktionary Faịlụ Ńkàtá faịlụ MidiaWiki Ńkàtá MidiaWiki Templeeti Ńkàtá templeeti Enyemaka Ńkàtá enyemaka Otú Ńkàtá otú TimedText TimedText talk Module Module talk Event Event talk Okeke 0 1334 36135 29489 2026-05-25T15:44:27Z Sayvhior 168 /* Bekee */ 36135 wikitext text/x-wiki '''Okeke''' ==Nkọwa== Aha mmadụ pụtara nwa nwoke amụrụ na ụbọchị Eke. ===Nkeji Asụsụ=== Aha ===Ọmụmaatụ=== Aha nna m bụ Okeke. ===Mkpọpụta=== Ókèkè [[File:LL-Q33578 (ibo)-Chiraldine-Okeke.wav|LL-Q33578 (ibo)-Chiraldine-Okeke]] ===Olumba=== =Ntụgharị= ===Bekee=== Boy child born on the Eke Market day [[Òtù:Wiki Loves Names]] [[Òtù:aha]] [[Òtù:Mmadụ]] [[Òtù:Igbo Noun Project]] [[Òtù:Aha Nna]] hdnynky0lk8v8cis7sybsosiw6bncff 36296 36135 2026-05-26T08:43:17Z Sayvhior 168 /* Ntụgharị */ 36296 wikitext text/x-wiki '''Okeke''' ==Nkọwa== Aha mmadụ pụtara nwa nwoke amụrụ na ụbọchị Eke. ===Nkeji Asụsụ=== Aha ===Ọmụmaatụ=== Aha nna m bụ Okeke. ===Mkpọpụta=== Ókèkè [[File:LL-Q33578 (ibo)-Chiraldine-Okeke.wav|LL-Q33578 (ibo)-Chiraldine-Okeke]] ===Olumba=== =Ntụgharị= ===Bekee=== Boy child born on the Eke Market day [[Òtù:Wiki Loves Names]] [[Òtù:aha]] [[Òtù:Mmadụ]] [[Òtù:Igbo Noun Project]] [[Òtù:Aha nna]] 5teprgcxfhxkypqhstvdyo9ydes1al7 Module:temp 828 6520 36236 35695 2006-10-07T08:03:13Z Wurmz 1403 34427 wikitext text/x-wiki phoiac9h4m842xq45sp7s6u21eteeq1 36237 35696 2006-10-25T11:01:43Z Herman Guthrie 1406 34433 wikitext text/x-wiki phoiac9h4m842xq45sp7s6u21eteeq1 36238 35697 2026-05-26T08:24:32Z King ChristLike 964 2 revisions imported from [[:en:Template:temp]] 34474 wikitext text/x-wiki <includeonly><onlyinclude>{{safesubst:<noinclude/>#invoke:template parser/templates|template_link_t}}</onlyinclude></includeonly><!-- -->{{temp|temp}}{{documentation}} j7pe9fadahr6jqm0fnpuxcxasravo3o Module:message box/styles.css 828 6625 36136 2024-09-13T00:59:35Z Theknightwho 1347 Created page with ".maintenance-box { width: 90%; margin: 0.75em auto; border-width: 1px; border-style: dashed; padding: 0.25em; } /* Colors */ .maintenance-box-blue { background-color: #E6E6FF; border-color: #000061; } .maintenance-box-red { background-color: #FFE6E6; border-color: #610000; } .maintenance-box-yellow { background-color: #FFFFE6; border-color: #616100; } .maintenance-box-grey { background-color: #F2F2F2; border-color: #303030; } .maintenance-box..." 36136 sanitized-css text/css .maintenance-box { width: 90%; margin: 0.75em auto; border-width: 1px; border-style: dashed; padding: 0.25em; } /* Colors */ .maintenance-box-blue { background-color: #E6E6FF; border-color: #000061; } .maintenance-box-red { background-color: #FFE6E6; border-color: #610000; } .maintenance-box-yellow { background-color: #FFFFE6; border-color: #616100; } .maintenance-box-grey { background-color: #F2F2F2; border-color: #303030; } .maintenance-box-orange { background-color: #FFF2E6; border-color: #612F00; } /* Dark colors. Styles need to be duplicated exactly between these two selectors. */ @media screen { html.skin-theme-clientpref-night .maintenance-box-blue { background-color: #1D1D44; border-color: #73737F; } html.skin-theme-clientpref-night .maintenance-box-red { background-color: #441D1D; border-color: #7F7373; } html.skin-theme-clientpref-night .maintenance-box-yellow { background-color: #44441D; border-color: #7F7F73; } html.skin-theme-clientpref-night .maintenance-box-grey { background-color: #303030; border-color: #797979; } html.skin-theme-clientpref-night .maintenance-box-orange { background-color: #44301D; border-color: #7F7973; } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .maintenance-box-blue { background-color: #1D1D44; border-color: #73737F; } html.skin-theme-clientpref-os .maintenance-box-red { background-color: #441D1D; border-color: #7F7373; } html.skin-theme-clientpref-os .maintenance-box-yellow { background-color: #44441D; border-color: #7F7F73; } html.skin-theme-clientpref-os .maintenance-box-grey { background-color: #303030; border-color: #797979; } html.skin-theme-clientpref-os .maintenance-box-orange { background-color: #44301D; border-color: #7F7973; } } .request-box { width: 90%; margin: 0.75em auto; border:1px dashed var(--border-color-base,#999999); padding: 0.25em; background:var(--background-color-base,#FFFFFF); } ohhdy2zignlpwzjkbte26n9uppy2nff 36137 36136 2024-09-13T00:59:49Z Theknightwho 1347 Protected "[[Module:message box/styles.css]]": Highly visible template/module ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite)) 36136 sanitized-css text/css .maintenance-box { width: 90%; margin: 0.75em auto; border-width: 1px; border-style: dashed; padding: 0.25em; } /* Colors */ .maintenance-box-blue { background-color: #E6E6FF; border-color: #000061; } .maintenance-box-red { background-color: #FFE6E6; border-color: #610000; } .maintenance-box-yellow { background-color: #FFFFE6; border-color: #616100; } .maintenance-box-grey { background-color: #F2F2F2; border-color: #303030; } .maintenance-box-orange { background-color: #FFF2E6; border-color: #612F00; } /* Dark colors. Styles need to be duplicated exactly between these two selectors. */ @media screen { html.skin-theme-clientpref-night .maintenance-box-blue { background-color: #1D1D44; border-color: #73737F; } html.skin-theme-clientpref-night .maintenance-box-red { background-color: #441D1D; border-color: #7F7373; } html.skin-theme-clientpref-night .maintenance-box-yellow { background-color: #44441D; border-color: #7F7F73; } html.skin-theme-clientpref-night .maintenance-box-grey { background-color: #303030; border-color: #797979; } html.skin-theme-clientpref-night .maintenance-box-orange { background-color: #44301D; border-color: #7F7973; } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .maintenance-box-blue { background-color: #1D1D44; border-color: #73737F; } html.skin-theme-clientpref-os .maintenance-box-red { background-color: #441D1D; border-color: #7F7373; } html.skin-theme-clientpref-os .maintenance-box-yellow { background-color: #44441D; border-color: #7F7F73; } html.skin-theme-clientpref-os .maintenance-box-grey { background-color: #303030; border-color: #797979; } html.skin-theme-clientpref-os .maintenance-box-orange { background-color: #44301D; border-color: #7F7973; } } .request-box { width: 90%; margin: 0.75em auto; border:1px dashed var(--border-color-base,#999999); padding: 0.25em; background:var(--background-color-base,#FFFFFF); } ohhdy2zignlpwzjkbte26n9uppy2nff 36138 36137 2024-09-13T01:11:52Z Theknightwho 1347 36138 sanitized-css text/css .maintenance-box { width: 90%; margin: 0.75em auto; border-width: 1px; border-style: dashed; padding: 0.25em; } /* Colors */ .maintenance-box-blue { background-color: #E6E6FF; border-color: #000061; } .maintenance-box-red { background-color: #FFE6E6; border-color: #610000; } .maintenance-box-yellow { background-color: #FFFFE6; border-color: #616100; } .maintenance-box-grey { background-color: #F2F2F2; border-color: #303030; } .maintenance-box-orange { background-color: #FFF2E6; border-color: #612F00; } /* Dark colors. Styles need to be duplicated exactly between these two selectors. */ @media screen { html.skin-theme-clientpref-night .maintenance-box-blue { background-color: #1D1D44; border-color: #73737F; } html.skin-theme-clientpref-night .maintenance-box-red { background-color: #441D1D; border-color: #7F7373; } html.skin-theme-clientpref-night .maintenance-box-yellow { background-color: #44441D; border-color: #7F7F73; } html.skin-theme-clientpref-night .maintenance-box-grey { background-color: #303030; border-color: #797979; } html.skin-theme-clientpref-night .maintenance-box-orange { background-color: #44301D; border-color: #7F7973; } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .maintenance-box-blue { background-color: #1D1D44; border-color: #73737F; } html.skin-theme-clientpref-os .maintenance-box-red { background-color: #441D1D; border-color: #7F7373; } html.skin-theme-clientpref-os .maintenance-box-yellow { background-color: #44441D; border-color: #7F7F73; } html.skin-theme-clientpref-os .maintenance-box-grey { background-color: #303030; border-color: #797979; } html.skin-theme-clientpref-os .maintenance-box-orange { background-color: #44301D; border-color: #7F7973; } } .request-box { width: 90%; margin: 0.75em auto; border:1px dashed var(--border-color-base,#999999); padding: 0.25em; background: var(--background-color-base,#FFFFFF); } kn6q7d5ho8n6lkhdf72swab21la7me0 36139 36138 2024-09-16T17:29:55Z Surjection 380 36139 sanitized-css text/css .maintenance-box { width: 90%; margin: 0.75em auto; border-width: 1px; border-style: dashed; padding: 0.25em; } .request-box { width: 90%; margin: 0.75em auto; border: 1px dashed var(--border-color-base,#999999); padding: 0.25em; background: var(--background-color-base,#FFFFFF); } /* Colors */ .maintenance-box-blue { background-color: #E6E6FF; border-color: #000061; } .maintenance-box-red { background-color: #FFE6E6; border-color: #610000; } .maintenance-box-yellow { background-color: #FFFFE6; border-color: #616100; } .maintenance-box-grey { background-color: #F2F2F2; border-color: #303030; } .maintenance-box-orange { background-color: #FFF2E6; border-color: #612F00; } /* Dark colors. Styles need to be duplicated exactly between these two selectors. */ @media screen { html.skin-theme-clientpref-night .maintenance-box-blue { background-color: #1D1D44; border-color: #73737F; } html.skin-theme-clientpref-night .maintenance-box-red { background-color: #441D1D; border-color: #7F7373; } html.skin-theme-clientpref-night .maintenance-box-yellow { background-color: #323216; border-color: #7F7F73; } html.skin-theme-clientpref-night .maintenance-box-grey { background-color: #303030; border-color: #797979; } html.skin-theme-clientpref-night .maintenance-box-orange { background-color: #44301D; border-color: #7F7973; } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .maintenance-box-blue { background-color: #1D1D44; border-color: #73737F; } html.skin-theme-clientpref-os .maintenance-box-red { background-color: #441D1D; border-color: #7F7373; } html.skin-theme-clientpref-os .maintenance-box-yellow { background-color: #323216; border-color: #7F7F73; } html.skin-theme-clientpref-os .maintenance-box-grey { background-color: #303030; border-color: #797979; } html.skin-theme-clientpref-os .maintenance-box-orange { background-color: #44301D; border-color: #7F7973; } } bm75dpxda0qiwcngotdg7j8mdtut8hr 36140 36139 2024-10-04T20:57:20Z Surjection 380 36140 sanitized-css text/css .maintenance-box { width: 90%; margin: 0.75em auto; border-width: 1px; border-style: dashed; padding: 0.25em; } .request-box { width: 90%; margin: 0.75em auto; border: 1px dashed var(--border-color-base,#999999); padding: 0.25em; background: var(--background-color-base,#FFFFFF); } body.skin-minerva .request-box table { margin-top: 0.25em; margin-bottom: 0.25em; } /* Colors */ .maintenance-box-blue { background-color: #E6E6FF; border-color: #000061; } .maintenance-box-red { background-color: #FFE6E6; border-color: #610000; } .maintenance-box-yellow { background-color: #FFFFE6; border-color: #616100; } .maintenance-box-grey { background-color: #F2F2F2; border-color: #303030; } .maintenance-box-orange { background-color: #FFF2E6; border-color: #612F00; } /* Dark colors. Styles need to be duplicated exactly between these two selectors. */ @media screen { html.skin-theme-clientpref-night .maintenance-box-blue { background-color: #1D1D44; border-color: #73737F; } html.skin-theme-clientpref-night .maintenance-box-red { background-color: #441D1D; border-color: #7F7373; } html.skin-theme-clientpref-night .maintenance-box-yellow { background-color: #323216; border-color: #7F7F73; } html.skin-theme-clientpref-night .maintenance-box-grey { background-color: #303030; border-color: #797979; } html.skin-theme-clientpref-night .maintenance-box-orange { background-color: #44301D; border-color: #7F7973; } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .maintenance-box-blue { background-color: #1D1D44; border-color: #73737F; } html.skin-theme-clientpref-os .maintenance-box-red { background-color: #441D1D; border-color: #7F7373; } html.skin-theme-clientpref-os .maintenance-box-yellow { background-color: #323216; border-color: #7F7F73; } html.skin-theme-clientpref-os .maintenance-box-grey { background-color: #303030; border-color: #797979; } html.skin-theme-clientpref-os .maintenance-box-orange { background-color: #44301D; border-color: #7F7973; } } to39h5wx1bjnzh4rgu9y5s2ucpzu6f1 36141 36140 2025-02-06T06:45:37Z Fenakhay 904 Make border wrap only the text 36141 sanitized-css text/css .maintenance-box { width: 90%; margin: 0.75em auto; border-width: 1px; border-style: dashed; padding: 0.25em; } .request-box { display: inline-block; margin: 0.75em auto; border: 1px dashed var(--border-color-base, #999999); padding: 0.25em; background: var(--background-color-base, #FFFFFF); } body.skin-minerva .request-box table { margin-top: 0.25em; margin-bottom: 0.25em; } /* Colors */ .maintenance-box-blue { background-color: #E6E6FF; border-color: #000061; } .maintenance-box-red { background-color: #FFE6E6; border-color: #610000; } .maintenance-box-yellow { background-color: #FFFFE6; border-color: #616100; } .maintenance-box-grey { background-color: #F2F2F2; border-color: #303030; } .maintenance-box-orange { background-color: #FFF2E6; border-color: #612F00; } /* Dark colors. Styles need to be duplicated exactly between these two selectors. */ @media screen { html.skin-theme-clientpref-night .maintenance-box-blue { background-color: #1D1D44; border-color: #73737F; } html.skin-theme-clientpref-night .maintenance-box-red { background-color: #441D1D; border-color: #7F7373; } html.skin-theme-clientpref-night .maintenance-box-yellow { background-color: #323216; border-color: #7F7F73; } html.skin-theme-clientpref-night .maintenance-box-grey { background-color: #303030; border-color: #797979; } html.skin-theme-clientpref-night .maintenance-box-orange { background-color: #44301D; border-color: #7F7973; } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .maintenance-box-blue { background-color: #1D1D44; border-color: #73737F; } html.skin-theme-clientpref-os .maintenance-box-red { background-color: #441D1D; border-color: #7F7373; } html.skin-theme-clientpref-os .maintenance-box-yellow { background-color: #323216; border-color: #7F7F73; } html.skin-theme-clientpref-os .maintenance-box-grey { background-color: #303030; border-color: #797979; } html.skin-theme-clientpref-os .maintenance-box-orange { background-color: #44301D; border-color: #7F7973; } } k26xq684urbprhwy74tyfqne2h7hqcm 36142 36141 2025-02-06T06:50:36Z Fenakhay 904 Add more margin to the left 36142 sanitized-css text/css .maintenance-box { width: 90%; margin: 0.75em auto; border-width: 1px; border-style: dashed; padding: 0.25em; } .request-box { display: inline-block; margin: 0.75em 0 0.75em 1em; border: 1px dashed var(--border-color-base, #999999); padding: 0.25em; background: var(--background-color-base, #FFFFFF); } body.skin-minerva .request-box table { margin-top: 0.25em; margin-bottom: 0.25em; } /* Colors */ .maintenance-box-blue { background-color: #E6E6FF; border-color: #000061; } .maintenance-box-red { background-color: #FFE6E6; border-color: #610000; } .maintenance-box-yellow { background-color: #FFFFE6; border-color: #616100; } .maintenance-box-grey { background-color: #F2F2F2; border-color: #303030; } .maintenance-box-orange { background-color: #FFF2E6; border-color: #612F00; } /* Dark colors. Styles need to be duplicated exactly between these two selectors. */ @media screen { html.skin-theme-clientpref-night .maintenance-box-blue { background-color: #1D1D44; border-color: #73737F; } html.skin-theme-clientpref-night .maintenance-box-red { background-color: #441D1D; border-color: #7F7373; } html.skin-theme-clientpref-night .maintenance-box-yellow { background-color: #323216; border-color: #7F7F73; } html.skin-theme-clientpref-night .maintenance-box-grey { background-color: #303030; border-color: #797979; } html.skin-theme-clientpref-night .maintenance-box-orange { background-color: #44301D; border-color: #7F7973; } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .maintenance-box-blue { background-color: #1D1D44; border-color: #73737F; } html.skin-theme-clientpref-os .maintenance-box-red { background-color: #441D1D; border-color: #7F7373; } html.skin-theme-clientpref-os .maintenance-box-yellow { background-color: #323216; border-color: #7F7F73; } html.skin-theme-clientpref-os .maintenance-box-grey { background-color: #303030; border-color: #797979; } html.skin-theme-clientpref-os .maintenance-box-orange { background-color: #44301D; border-color: #7F7973; } } 584uohhhrqkn7iye0zj7ih3egqdnped 36143 36142 2025-02-06T09:35:42Z Fenakhay 904 36143 sanitized-css text/css .maintenance-box { width: 90%; margin: 0.75em auto; border-width: 1px; border-style: dashed; padding: 0.25em; } .request-box { display: inline-block; margin: 0.75em 1em 0.75em 1em; border: 1px dashed var(--border-color-base, #999999); padding: 0.25em; background: var(--background-color-base, #FFFFFF); } body.skin-minerva .request-box table { margin-top: 0.25em; margin-bottom: 0.25em; } /* Colors */ .maintenance-box-blue { background-color: #E6E6FF; border-color: #000061; } .maintenance-box-red { background-color: #FFE6E6; border-color: #610000; } .maintenance-box-yellow { background-color: #FFFFE6; border-color: #616100; } .maintenance-box-grey { background-color: #F2F2F2; border-color: #303030; } .maintenance-box-orange { background-color: #FFF2E6; border-color: #612F00; } /* Dark colors. Styles need to be duplicated exactly between these two selectors. */ @media screen { html.skin-theme-clientpref-night .maintenance-box-blue { background-color: #1D1D44; border-color: #73737F; } html.skin-theme-clientpref-night .maintenance-box-red { background-color: #441D1D; border-color: #7F7373; } html.skin-theme-clientpref-night .maintenance-box-yellow { background-color: #323216; border-color: #7F7F73; } html.skin-theme-clientpref-night .maintenance-box-grey { background-color: #303030; border-color: #797979; } html.skin-theme-clientpref-night .maintenance-box-orange { background-color: #44301D; border-color: #7F7973; } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .maintenance-box-blue { background-color: #1D1D44; border-color: #73737F; } html.skin-theme-clientpref-os .maintenance-box-red { background-color: #441D1D; border-color: #7F7373; } html.skin-theme-clientpref-os .maintenance-box-yellow { background-color: #323216; border-color: #7F7F73; } html.skin-theme-clientpref-os .maintenance-box-grey { background-color: #303030; border-color: #797979; } html.skin-theme-clientpref-os .maintenance-box-orange { background-color: #44301D; border-color: #7F7973; } } njaon0698lei958lap1edg0gt685k7x 36144 36143 2025-02-14T01:39:51Z This, that and the other 894 remove display: inline-block from .request-box as it was causing these boxes to clear under floating elements on narrow viewports: see [[Wiktionary:Grease pit/2025/February#Frame-width filling request display boxes]] 36144 sanitized-css text/css .maintenance-box { width: 90%; margin: 0.75em auto; border-width: 1px; border-style: dashed; padding: 0.25em; } .request-box { /* width: fit-content added as inline style */ margin: 0.75em 1em 0.75em 1em; border: 1px dashed var(--border-color-base, #999999); padding: 0.25em; background: var(--background-color-base, #FFFFFF); } body.skin-minerva .request-box table { margin-top: 0.25em; margin-bottom: 0.25em; } /* Colors */ .maintenance-box-blue { background-color: #E6E6FF; border-color: #000061; } .maintenance-box-red { background-color: #FFE6E6; border-color: #610000; } .maintenance-box-yellow { background-color: #FFFFE6; border-color: #616100; } .maintenance-box-grey { background-color: #F2F2F2; border-color: #303030; } .maintenance-box-orange { background-color: #FFF2E6; border-color: #612F00; } /* Dark colors. Styles need to be duplicated exactly between these two selectors. */ @media screen { html.skin-theme-clientpref-night .maintenance-box-blue { background-color: #1D1D44; border-color: #73737F; } html.skin-theme-clientpref-night .maintenance-box-red { background-color: #441D1D; border-color: #7F7373; } html.skin-theme-clientpref-night .maintenance-box-yellow { background-color: #323216; border-color: #7F7F73; } html.skin-theme-clientpref-night .maintenance-box-grey { background-color: #303030; border-color: #797979; } html.skin-theme-clientpref-night .maintenance-box-orange { background-color: #44301D; border-color: #7F7973; } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .maintenance-box-blue { background-color: #1D1D44; border-color: #73737F; } html.skin-theme-clientpref-os .maintenance-box-red { background-color: #441D1D; border-color: #7F7373; } html.skin-theme-clientpref-os .maintenance-box-yellow { background-color: #323216; border-color: #7F7F73; } html.skin-theme-clientpref-os .maintenance-box-grey { background-color: #303030; border-color: #797979; } html.skin-theme-clientpref-os .maintenance-box-orange { background-color: #44301D; border-color: #7F7973; } } rjz98q84bhx4tq9g0e8nrtea9per3ay 36145 36144 2025-09-27T19:15:47Z Surjection 380 use palette 36145 sanitized-css text/css .maintenance-box { width: 90%; margin: 0.75em auto; border-width: 1px; border-style: dashed; padding: 0.25em; } .request-box { /* width: fit-content added as inline style */ margin: 0.75em 1em 0.75em 1em; border: 1px dashed var(--border-color-base, #999999); padding: 0.25em; background: var(--background-color-base, #FFFFFF); } body.skin-minerva .request-box table { margin-top: 0.25em; margin-bottom: 0.25em; } /* Colors */ .maintenance-box-blue { background-color: var(--wikt-palette-indigo-2, #E6E6FF); border: 1px dashed var(--wikt-palette-indigo-9, #000061); } .maintenance-box-red { background-color: var(--wikt-palette-red-2, #FFE6E6); border: 1px dashed var(--wikt-palette-red-9, #610000); } .maintenance-box-yellow { background-color: var(--wikt-palette-yellow-2, #FFFFE6); border: 1px dashed var(--wikt-palette-yellow-9, #616100); } .maintenance-box-grey { background-color: var(--wikt-palette-grey-2, #F2F2F2); border: 1px dashed var(--wikt-palette-grey-9, #303030); } .maintenance-box-orange { background-color: var(--wikt-palette-orange-2, #FFF2E6); border: 1px dashed var(--wikt-palette-orange-9, #612F00); } c7trgs9ke3suivkv1i499asy3vlqpjp 36146 36145 2025-10-02T18:21:36Z Ioaxxere 1384 add some paddingh 36146 sanitized-css text/css .maintenance-box { width: 90%; margin: 0.75em auto; border-width: 1px; border-style: dashed; padding: 0.25em; } .maintenance-box-image-cell { padding: 0 0.5em; } .request-box { /* width: fit-content added as inline style */ margin: 0.75em 1em 0.75em 1em; border: 1px dashed var(--border-color-base, #999999); padding: 0.25em; background: var(--background-color-base, #FFFFFF); } body.skin-minerva .request-box table { margin-top: 0.25em; margin-bottom: 0.25em; } /* Colors */ .maintenance-box-blue { background-color: var(--wikt-palette-indigo-2, #E6E6FF); border: 1px dashed var(--wikt-palette-indigo-9, #000061); } .maintenance-box-red { background-color: var(--wikt-palette-red-2, #FFE6E6); border: 1px dashed var(--wikt-palette-red-9, #610000); } .maintenance-box-yellow { background-color: var(--wikt-palette-yellow-2, #FFFFE6); border: 1px dashed var(--wikt-palette-yellow-9, #616100); } .maintenance-box-grey { background-color: var(--wikt-palette-grey-2, #F2F2F2); border: 1px dashed var(--wikt-palette-grey-9, #303030); } .maintenance-box-orange { background-color: var(--wikt-palette-orange-2, #FFF2E6); border: 1px dashed var(--wikt-palette-orange-9, #612F00); } jfrapui9r3bti6gtwmpkgwsllc2g0hj 36147 36146 2025-10-17T17:57:48Z Surjection 380 36147 sanitized-css text/css .maintenance-box { width: 90%; margin: 0.75em auto; border-width: 1px; border-style: dashed; padding: 0.25em; } body.skin-vector-2022 .maintenance-box > table td p:last-of-type { /* remove extraneous bottom margin from bottom edge of maintenance box if it has multiple lines/paragraphs */ margin-bottom: 0.5em; } .maintenance-box-image-cell { padding: 0 0.5em; } .request-box { /* width: fit-content added as inline style */ margin: 0.75em 1em 0.75em 1em; border: 1px dashed var(--border-color-base, #999999); padding: 0.25em; background: var(--background-color-base, #FFFFFF); } body.skin-minerva .request-box table { margin-top: 0.25em; margin-bottom: 0.25em; } /* Colors */ .maintenance-box-blue { background-color: var(--wikt-palette-indigo-2, #E6E6FF); border: 1px dashed var(--wikt-palette-indigo-9, #000061); } .maintenance-box-red { background-color: var(--wikt-palette-red-2, #FFE6E6); border: 1px dashed var(--wikt-palette-red-9, #610000); } .maintenance-box-yellow { background-color: var(--wikt-palette-yellow-2, #FFFFE6); border: 1px dashed var(--wikt-palette-yellow-9, #616100); } .maintenance-box-grey { background-color: var(--wikt-palette-grey-2, #F2F2F2); border: 1px dashed var(--wikt-palette-grey-9, #303030); } .maintenance-box-orange { background-color: var(--wikt-palette-orange-2, #FFF2E6); border: 1px dashed var(--wikt-palette-orange-9, #612F00); } 6f8v8qmm0zjrwaewxeajcjru7jaq5vz 36148 36147 2025-10-17T18:00:35Z Surjection 380 36148 sanitized-css text/css .maintenance-box { width: 90%; margin: 0.75em auto; border-width: 1px; border-style: dashed; padding: 0.25em; } body.skin-vector-2022 .maintenance-box > table td p:last-of-type { /* remove extraneous bottom margin from bottom edge of maintenance box if it has multiple lines/paragraphs */ margin-bottom: 0.25em; } .maintenance-box-image-cell { padding: 0 0.5em; } .request-box { /* width: fit-content added as inline style */ margin: 0.75em 1em 0.75em 1em; border: 1px dashed var(--border-color-base, #999999); padding: 0.25em; background: var(--background-color-base, #FFFFFF); } body.skin-minerva .request-box table { margin-top: 0.25em; margin-bottom: 0.25em; } /* Colors */ .maintenance-box-blue { background-color: var(--wikt-palette-indigo-2, #E6E6FF); border: 1px dashed var(--wikt-palette-indigo-9, #000061); } .maintenance-box-red { background-color: var(--wikt-palette-red-2, #FFE6E6); border: 1px dashed var(--wikt-palette-red-9, #610000); } .maintenance-box-yellow { background-color: var(--wikt-palette-yellow-2, #FFFFE6); border: 1px dashed var(--wikt-palette-yellow-9, #616100); } .maintenance-box-grey { background-color: var(--wikt-palette-grey-2, #F2F2F2); border: 1px dashed var(--wikt-palette-grey-9, #303030); } .maintenance-box-orange { background-color: var(--wikt-palette-orange-2, #FFF2E6); border: 1px dashed var(--wikt-palette-orange-9, #612F00); } 94apw72wdbw2yvw3hygvo1l8sbdhyi8 36149 36148 2026-05-26T08:22:46Z King ChristLike 964 13 revisions imported from [[:en:Module:message_box/styles.css]] 36148 sanitized-css text/css .maintenance-box { width: 90%; margin: 0.75em auto; border-width: 1px; border-style: dashed; padding: 0.25em; } body.skin-vector-2022 .maintenance-box > table td p:last-of-type { /* remove extraneous bottom margin from bottom edge of maintenance box if it has multiple lines/paragraphs */ margin-bottom: 0.25em; } .maintenance-box-image-cell { padding: 0 0.5em; } .request-box { /* width: fit-content added as inline style */ margin: 0.75em 1em 0.75em 1em; border: 1px dashed var(--border-color-base, #999999); padding: 0.25em; background: var(--background-color-base, #FFFFFF); } body.skin-minerva .request-box table { margin-top: 0.25em; margin-bottom: 0.25em; } /* Colors */ .maintenance-box-blue { background-color: var(--wikt-palette-indigo-2, #E6E6FF); border: 1px dashed var(--wikt-palette-indigo-9, #000061); } .maintenance-box-red { background-color: var(--wikt-palette-red-2, #FFE6E6); border: 1px dashed var(--wikt-palette-red-9, #610000); } .maintenance-box-yellow { background-color: var(--wikt-palette-yellow-2, #FFFFE6); border: 1px dashed var(--wikt-palette-yellow-9, #616100); } .maintenance-box-grey { background-color: var(--wikt-palette-grey-2, #F2F2F2); border: 1px dashed var(--wikt-palette-grey-9, #303030); } .maintenance-box-orange { background-color: var(--wikt-palette-orange-2, #FFF2E6); border: 1px dashed var(--wikt-palette-orange-9, #612F00); } 94apw72wdbw2yvw3hygvo1l8sbdhyi8 Module:shortcut box 828 6626 36150 2014-09-25T04:54:43Z Kephir 1378 for {{shortcut}} 36150 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local FULLPAGENAME = mw.title.getCurrentTitle().fullText local SUBPAGENAME = FULLPAGENAME:match("/([^/]-)$") output[#output + 1] = '<div class="noprint plainlinks" style="border:1px solid #999; background:#eeeeff; margin:0 0 .5em 1em; text-align:center; padding:5px; float:right; clear:both; font-size:smaller;">' for i, shcut in ipairs(args) do local attn, title = false, mw.title.new(shcut) if not title then item = '<span class="attentionseeking">(<code>' .. shcut .. '</code>)</span>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then iattn = true else local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*%[%[(.-)%]%]") if not target then iattn = true elseif target ~= FULLPAGENAME then iattn = true end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export l1525hjtly12frj3u2t680rxlwcmq1y 36151 36150 2014-09-25T04:59:04Z Kephir 1378 36151 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local FULLPAGENAME = mw.title.getCurrentTitle().fullText local SUBPAGENAME = FULLPAGENAME:match("/([^/]-)$") if FULLPAGENAME == frame:getTitle() then return '<div class="noprint plainlinks" style="border:1px solid #999; background:#eeeeff; margin:0 0 .5em 1em; text-align:center; padding:5px; clear:both; font-size:smaller;">[[Wiktionary:Shortcut|Shortcuts]]:<br/>{{{1}}}</div>' else output[#output + 1] = '<div class="noprint plainlinks" style="border:1px solid #999; background:#eeeeff; margin:0 0 .5em 1em; text-align:center; padding:5px; float:right; clear:both; font-size:smaller;">' end if args.temp then output[#output + 1] = 'Temporary [[Wiktionary:Shortcut|shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' else output[#output + 1] = '[[Wiktionary:Shortcut|Shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' end for i, shcut in ipairs(args) do local attn, title = false, mw.title.new(shcut) if not title then item = '<span class="attentionseeking">(<code>' .. shcut .. '</code>)</span>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then iattn = true else local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*%[%[(.-)%]%]") if not target then iattn = true elseif target ~= FULLPAGENAME then iattn = true end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export debhxierlcosc1zo4ob1h16i2zzisgh 36152 36151 2014-09-25T04:59:52Z Kephir 1378 36152 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local FULLPAGENAME = mw.title.getCurrentTitle().fullText local SUBPAGENAME = FULLPAGENAME:match("/([^/]-)$") if FULLPAGENAME == frame:getParent():getTitle() then return '<div class="noprint plainlinks" style="border:1px solid #999; background:#eeeeff; margin:0 0 .5em 1em; text-align:center; padding:5px; clear:both; font-size:smaller;">[[Wiktionary:Shortcut|Shortcuts]]:<br/>{{{1}}}</div>' else output[#output + 1] = '<div class="noprint plainlinks" style="border:1px solid #999; background:#eeeeff; margin:0 0 .5em 1em; text-align:center; padding:5px; float:right; clear:both; font-size:smaller;">' end if args.temp then output[#output + 1] = 'Temporary [[Wiktionary:Shortcut|shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' else output[#output + 1] = '[[Wiktionary:Shortcut|Shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' end for i, shcut in ipairs(args) do local attn, title = false, mw.title.new(shcut) if not title then item = '<span class="attentionseeking">(<code>' .. shcut .. '</code>)</span>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then iattn = true else local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*%[%[(.-)%]%]") if not target then iattn = true elseif target ~= FULLPAGENAME then iattn = true end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export mnsk3w9zk9xjhfw9yw0hspt6njwc6ua 36153 36152 2014-09-25T05:04:56Z Kephir 1378 hmm 36153 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") if FULLPAGENAME == frame:getParent():getTitle() then demo = true else output[#output + 1] = '<div class="noprint plainlinks" style="border:1px solid #999; background:#eeeeff; margin:0 0 .5em 1em; text-align:center; padding:5px; float:right; clear:both; font-size:smaller;">' end if args.temp then output[#output + 1] = 'Temporary [[Wiktionary:Shortcut|shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' else output[#output + 1] = '[[Wiktionary:Shortcut|Shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' end for i, shcut in ipairs(args) do local attn, title = false, mw.title.new(shcut) if not title then item = '<span class="attentionseeking">(<code>' .. shcut .. '</code>)</span>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then iattn = true elseif not demo then local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*%[%[(.-)%]%]") if not target then iattn = true elseif SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) and (target ~= FULLPAGENAME) else iattn = (target ~= FULLPAGENAME) and (target ~= (FULLPAGENAME .. '/documentation')) end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export 867puqhh03lwliiys5xgmxnhj3tfvgg 36154 36153 2014-09-25T05:05:27Z Kephir 1378 36154 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks" style="border:1px solid #999; background:#eeeeff; margin:0 0 .5em 1em; text-align:center; padding:5px; float:right; clear:both; font-size:smaller;">' if args.temp then output[#output + 1] = 'Temporary [[Wiktionary:Shortcut|shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' else output[#output + 1] = '[[Wiktionary:Shortcut|Shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' end for i, shcut in ipairs(args) do local attn, title = false, mw.title.new(shcut) if not title then item = '<span class="attentionseeking">(<code>' .. shcut .. '</code>)</span>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then iattn = true elseif not demo then local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*%[%[(.-)%]%]") if not target then iattn = true elseif SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) and (target ~= FULLPAGENAME) else iattn = (target ~= FULLPAGENAME) and (target ~= (FULLPAGENAME .. '/documentation')) end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export czxg2ntcc6glaocl1diwts8o5it9enm 36155 36154 2014-09-25T05:08:53Z Kephir 1378 argh 36155 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks" style="border:1px solid #999; background:#eeeeff; margin:0 0 .5em 1em; text-align:center; padding:5px; float:right; clear:both; font-size:smaller;">' if args.temp then output[#output + 1] = 'Temporary [[Wiktionary:Shortcut|shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' else output[#output + 1] = '[[Wiktionary:Shortcut|Shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' end local attn = false for i, shcut in ipairs(args) do local title = mw.title.new(shcut) if not title then item = '<span class="attentionseeking">(<code>' .. shcut .. '</code>)</span>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then iattn = true elseif not demo then local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*%[%[(.-)%]%]") if not target then iattn = true elseif SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) and (target ~= FULLPAGENAME) else iattn = (target ~= FULLPAGENAME) and (target ~= (FULLPAGENAME .. '/documentation')) end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export 4pkvipry0svmnupvzqonyhif2rz56t4 36156 36155 2014-09-25T05:10:46Z Kephir 1378 hmmmm 36156 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks" style="border:1px solid #999; background:#eeeeff; margin:0 0 .5em 1em; text-align:center; padding:5px; float:right; clear:both; font-size:smaller;">' if args.temp then output[#output + 1] = 'Temporary [[Wiktionary:Shortcut|shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' else output[#output + 1] = '[[Wiktionary:Shortcut|Shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' end local attn = false for i, shcut in ipairs(args) do local title = mw.title.new(shcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then iattn = true elseif not demo then local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*%[%[(.-)[#%]]") if not target then iattn = true elseif SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) and (target ~= FULLPAGENAME) else iattn = (target ~= FULLPAGENAME) and (target ~= (FULLPAGENAME .. '/documentation')) end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export r08nf3vgk6qzi3wmrkqhamp01i244tx 36157 36156 2014-09-25T05:15:09Z Kephir 1378 hmmm 36157 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks" style="border:1px solid #999; background:#eeeeff; margin:0 0 .5em 1em; text-align:center; padding:5px; float:right; clear:both; font-size:smaller;">' if args.temp then output[#output + 1] = 'Temporary [[Wiktionary:Shortcut|shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' else output[#output + 1] = '[[Wiktionary:Shortcut|Shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' end local attn = false for i, shcut in ipairs(args) do local title = mw.title.new(shcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then iattn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' ' .. shcut .. ']' end elseif not demo then local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*%[%[(.-)[#%]]") if not target then iattn = true elseif SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) and (target ~= FULLPAGENAME) else iattn = (target ~= FULLPAGENAME) and (target ~= (FULLPAGENAME .. '/documentation')) end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export m0tpkftvhjubzaxhhmoj5uigdk0t9ul 36158 36157 2014-09-25T05:17:10Z Kephir 1378 special check for templates 36158 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks" style="border:1px solid #999; background:#eeeeff; margin:0 0 .5em 1em; text-align:center; padding:5px; float:right; clear:both; font-size:smaller;">' if args.temp then output[#output + 1] = 'Temporary [[Wiktionary:Shortcut|shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' else output[#output + 1] = '[[Wiktionary:Shortcut|Shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' end local attn = false for i, shcut in ipairs(args) do local title = mw.title.new(shcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then iattn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' ' .. shcut .. ']' end elseif not demo then local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*%[%[(.-)[#%]]") if not target then iattn = true elseif title.namespace == 10 then if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) else iattn = (target ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) and (target ~= FULLPAGENAME) else iattn = (target ~= FULLPAGENAME) and (target ~= (FULLPAGENAME .. '/documentation')) end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export i82h8ymzh807lwwdgsbpoao99p6z8oy 36159 36158 2014-09-25T05:20:04Z Kephir 1378 :? 36159 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks" style="border:1px solid #999; background:#eeeeff; margin:0 0 .5em 1em; text-align:center; padding:5px; float:right; clear:both; font-size:smaller;">' if args.temp then output[#output + 1] = 'Temporary [[Wiktionary:Shortcut|shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' else output[#output + 1] = '[[Wiktionary:Shortcut|Shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' end local attn = false for i, shcut in ipairs(args) do local title = mw.title.new(shcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then iattn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' ' .. shcut .. ']' end elseif not demo then local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*%[%[:?(.-)[#%]]") if not target then iattn = true elseif title.namespace == 10 then if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) else iattn = (target ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) and (target ~= FULLPAGENAME) else iattn = (target ~= FULLPAGENAME) and (target ~= (FULLPAGENAME .. '/documentation')) end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export etfr1gvrkry2tp8jm77ft4igu1j4by3 36160 36159 2014-09-25T05:38:16Z Kephir 1378 normalise titles a bit 36160 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks" style="border:1px solid #999; background:#eeeeff; margin:0 0 .5em 1em; text-align:center; padding:5px; float:right; clear:both; font-size:smaller;">' if args.temp then output[#output + 1] = 'Temporary [[Wiktionary:Shortcut|shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' else output[#output + 1] = '[[Wiktionary:Shortcut|Shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' end local attn = false for i, shcut in ipairs(args) do local title = mw.title.new(shcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then iattn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' ' .. shcut .. ']' end elseif not demo then local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[%s*:?%s*(.-)[#%]]") if not target then iattn = true else local tns, tpg = target:match("%s*(.-)%s*:%s*(.*)%s*") if mw.site.namespace[tns] then tns = mw.site.namespace[tns].name target = tns .. ':' .. tpg end if title.namespace == 10 then if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) else iattn = (target ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) and (target ~= FULLPAGENAME) else iattn = (target ~= FULLPAGENAME) and (target ~= (FULLPAGENAME .. '/documentation')) end end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export puoqm8texi1qo3cofddsmvfmxypd49f 36161 36160 2014-09-25T05:39:03Z Kephir 1378 s 36161 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks" style="border:1px solid #999; background:#eeeeff; margin:0 0 .5em 1em; text-align:center; padding:5px; float:right; clear:both; font-size:smaller;">' if args.temp then output[#output + 1] = 'Temporary [[Wiktionary:Shortcut|shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' else output[#output + 1] = '[[Wiktionary:Shortcut|Shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' end local attn = false for i, shcut in ipairs(args) do local title = mw.title.new(shcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then iattn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' ' .. shcut .. ']' end elseif not demo then local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[%s*:?%s*(.-)[#%]]") if not target then iattn = true else local tns, tpg = target:match("%s*(.-)%s*:%s*(.*)%s*") if mw.site.namespaces[tns] then tns = mw.site.namespaces[tns].name target = tns .. ':' .. tpg end if title.namespace == 10 then if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) else iattn = (target ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) and (target ~= FULLPAGENAME) else iattn = (target ~= FULLPAGENAME) and (target ~= (FULLPAGENAME .. '/documentation')) end end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export 155dvv4y1728q87c6il4viqmmakvs40 36162 36161 2014-09-25T06:53:37Z Kephir 1378 "_" → " " 36162 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks" style="border:1px solid #999; background:#eeeeff; margin:0 0 .5em 1em; text-align:center; padding:5px; float:right; clear:both; font-size:smaller;">' if args.temp then output[#output + 1] = 'Temporary [[Wiktionary:Shortcut|shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' else output[#output + 1] = '[[Wiktionary:Shortcut|Shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' end local attn = false for i, shcut in ipairs(args) do local title = mw.title.new(shcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then iattn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' ' .. shcut .. ']' end elseif not demo then local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[%s*:?%s*(.-)[#%]]") if not target then iattn = true else target = target:gsub("_", " ") local tns, tpg = target:match("%s*(.-)%s*:%s*(.*)%s*") if mw.site.namespaces[tns] then tns = mw.site.namespaces[tns].name target = tns .. ':' .. tpg end if title.namespace == 10 then if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) else iattn = (target ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) and (target ~= FULLPAGENAME) else iattn = (target ~= FULLPAGENAME) and (target ~= (FULLPAGENAME .. '/documentation')) end end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export 23dw48k1pqvihsahax7eaybjg13qm8e 36163 36162 2014-09-25T10:09:47Z Kephir 1378 write down fallback (currently not needed) 36163 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks" style="border:1px solid #999; background:#eeeeff; margin:0 0 .5em 1em; text-align:center; padding:5px; float:right; clear:both; font-size:smaller;">' if args.temp then output[#output + 1] = 'Temporary [[Wiktionary:Shortcut|shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' else output[#output + 1] = '[[Wiktionary:Shortcut|Shortcut' .. (args[2] and 's' or '') .. ']]:<br/>' end local attn = false for i, shcut in ipairs(args) do local title = mw.title.new(shcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then iattn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' ' .. shcut .. ']' end elseif not demo then local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[%s*:?%s*(.-)[#%]]") if not target then iattn = true else target = target:gsub("_", " ") local tns, tpg = target:match("%s*(.-)%s*:%s*(.*)%s*") if mw.site.namespaces[tns] then tns = mw.site.namespaces[tns].name target = tns .. ':' .. tpg end if title.namespace == 10 then if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) else iattn = (target ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) and (target ~= FULLPAGENAME) else iattn = (target ~= FULLPAGENAME) and (target ~= (FULLPAGENAME .. '/documentation')) end end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export a6ly4ppy2y6orbnn45ag8mx0iuhirqn 36164 36163 2014-11-09T20:59:45Z Kephir 1378 restyling experiment 36164 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks" style="border:2px solid #666; background:#eee; margin:0 0 .5em 1em; text-align:center; padding:5px; float:right; clear:both; font-size:smaller;">' if args.temp then output[#output + 1] = [=['''Temporary [[Wiktionary:Shortcut|shortcut' .. (args[2] and 's' or '') .. ']]:'''<br/>]=] else output[#output + 1] = [=['''[[Wiktionary:Shortcut|Shortcut' .. (args[2] and 's' or '') .. ']]:'''<br/>]=] end local attn = false for i, shcut in ipairs(args) do local title = mw.title.new(shcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' <span style="color:#c20;">' .. shcut .. '</span>]' end elseif not demo then local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[%s*:?%s*(.-)[#%]]") if not target then iattn = true else target = target:gsub("_", " ") local tns, tpg = target:match("%s*(.-)%s*:%s*(.*)%s*") if mw.site.namespaces[tns] then tns = mw.site.namespaces[tns].name target = tns .. ':' .. tpg end if title.namespace == 10 then if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) else iattn = (target ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) and (target ~= FULLPAGENAME) else iattn = (target ~= FULLPAGENAME) and (target ~= (FULLPAGENAME .. '/documentation')) end end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export l9kd80ep2w7tq8lnntr27fcn0kd7t37 36165 36164 2014-11-09T21:00:17Z Kephir 1378 sigh 36165 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks" style="border:2px solid #666; background:#eee; margin:0 0 .5em 1em; text-align:center; padding:5px; float:right; clear:both; font-size:smaller;">' if args.temp then output[#output + 1] = [=['''Temporary [[Wiktionary:Shortcut|shortcut]=] .. (args[2] and 's' or '') .. [=[]]:'''<br/>]=] else output[#output + 1] = [=['''[[Wiktionary:Shortcut|Shortcut]=] .. (args[2] and 's' or '') .. [=[]]:'''<br/>]=] end local attn = false for i, shcut in ipairs(args) do local title = mw.title.new(shcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' <span style="color:#c20;">' .. shcut .. '</span>]' end elseif not demo then local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[%s*:?%s*(.-)[#%]]") if not target then iattn = true else target = target:gsub("_", " ") local tns, tpg = target:match("%s*(.-)%s*:%s*(.*)%s*") if mw.site.namespaces[tns] then tns = mw.site.namespaces[tns].name target = tns .. ':' .. tpg end if title.namespace == 10 then if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) else iattn = (target ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) and (target ~= FULLPAGENAME) else iattn = (target ~= FULLPAGENAME) and (target ~= (FULLPAGENAME .. '/documentation')) end end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export 7y5oyp9iqeh0f3ehgtrz7ak2lal27bj 36166 36165 2014-11-09T21:13:37Z Kephir 1378 get rid of inline styles 36166 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks shortcut-box">' if args.temp then output[#output + 1] = "'''Temporary [[Wiktionary:Shortcut|shortcut" .. (args[2] and 's' or '') .. "]]:'''<br/>" else output[#output + 1] = "'''[[Wiktionary:Shortcut|Shortcut" .. (args[2] and 's' or '') .. "]]:'''<br/>" end local attn = false for i, shcut in ipairs(args) do local title = mw.title.new(shcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' <span style="color:#c20;">' .. shcut .. '</span>]' end elseif not demo then local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[%s*:?%s*(.-)[#%]]") if not target then iattn = true else target = target:gsub("_", " ") local tns, tpg = target:match("%s*(.-)%s*:%s*(.*)%s*") if mw.site.namespaces[tns] then tns = mw.site.namespaces[tns].name target = tns .. ':' .. tpg end if title.namespace == 10 then if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) else iattn = (target ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) and (target ~= FULLPAGENAME) else iattn = (target ~= FULLPAGENAME) and (target ~= (FULLPAGENAME .. '/documentation')) end end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export mzprjo9nl3x6yb0oh0eu9k54z7oq5ih 36167 36166 2014-11-11T06:33:47Z Kephir 1378 36167 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks shortcut-box">' if args.temp then output[#output + 1] = "Temporary [[Wiktionary:Shortcut|shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" else output[#output + 1] = "[[Wiktionary:Shortcut|Shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" end local attn = false for i, shcut in ipairs(args) do local title = mw.title.new(shcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' <span style="color:#c20;">' .. shcut .. '</span>]' end elseif not demo then local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[%s*:?%s*(.-)[#%]]") if not target then iattn = true else target = target:gsub("_", " ") local tns, tpg = target:match("%s*(.-)%s*:%s*(.*)%s*") if mw.site.namespaces[tns] then tns = mw.site.namespaces[tns].name target = tns .. ':' .. tpg end if title.namespace == 10 then if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) else iattn = (target ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) and (target ~= FULLPAGENAME) else iattn = (target ~= FULLPAGENAME) and (target ~= (FULLPAGENAME .. '/documentation')) end end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export 89zxz2xvnqip8b08xg78mj0vwny5fu7 36168 36167 2017-05-10T04:14:23Z Littlepenny413 1449 36168 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks shortcut-box">' if args.temp then output[#output + 1] = "Temporary [[Wiktionary:快捷方式|快捷方式" .. (args[2] and 's' or '') .. "]]:<br/>" else output[#output + 1] = "[[Wiktionary:快捷方式|快捷方式" .. (args[2] and 's' or '') .. "]]:<br/>" end local attn = false for i, shcut in ipairs(args) do local title = mw.title.new(shcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' <span style="color:#c20;">' .. shcut .. '</span>]' end elseif not demo then local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[%s*:?%s*(.-)[#%]]") if not target then iattn = true else target = target:gsub("_", " ") local tns, tpg = target:match("%s*(.-)%s*:%s*(.*)%s*") if mw.site.namespaces[tns] then tns = mw.site.namespaces[tns].name target = tns .. ':' .. tpg end if title.namespace == 10 then if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) else iattn = (target ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) and (target ~= FULLPAGENAME) else iattn = (target ~= FULLPAGENAME) and (target ~= (FULLPAGENAME .. '/documentation')) end end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export lu256h6zmu7qdwb16hq3qkxm4ct3bj7 36169 36168 2017-05-10T04:14:42Z Littlepenny413 1449 Undo 36169 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks shortcut-box">' if args.temp then output[#output + 1] = "Temporary [[Wiktionary:Shortcut|shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" else output[#output + 1] = "[[Wiktionary:Shortcut|Shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" end local attn = false for i, shcut in ipairs(args) do local title = mw.title.new(shcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item = '[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. shcut .. ']' if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' end if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.namespace == 10 then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shcut, query)) .. ' <span style="color:#c20;">' .. shcut .. '</span>]' end elseif not demo then local content = title:getContent() local target = content:match("^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[%s*:?%s*(.-)[#%]]") if not target then iattn = true else target = target:gsub("_", " ") local tns, tpg = target:match("%s*(.-)%s*:%s*(.*)%s*") if mw.site.namespaces[tns] then tns = mw.site.namespaces[tns].name target = tns .. ':' .. tpg end if title.namespace == 10 then if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) else iattn = (target ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = (target ~= BASEPAGENAME) and (target ~= FULLPAGENAME) else iattn = (target ~= FULLPAGENAME) and (target ~= (FULLPAGENAME .. '/documentation')) end end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export 89zxz2xvnqip8b08xg78mj0vwny5fu7 36170 36169 2018-10-20T23:27:44Z Erutuon 1339 use title.isRedirect and title.redirectTarget; use title.nsText because namespace names are more readable than numbers; refactor (hopefully this is right!) 36170 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks shortcut-box">' if args.temp then output[#output + 1] = "Temporary [[Wiktionary:Shortcut|shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" else output[#output + 1] = "[[Wiktionary:Shortcut|Shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" end local attn = false for i, shortcut in ipairs(args) do local title = mw.title.new(shortcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shortcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. shortcut .. '</span>]' end else if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. shortcut .. ']' end if not demo then local redirectTarget if title.isRedirect then redirectTarget = title.redirectTarget if redirectTarget then local targetText = redirectTarget.text if title.nsText == "Template" then if SUBPAGENAME == 'documentation' then iattn = (targetText ~= BASEPAGENAME) else iattn = (targetText ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = not (targetText == BASEPAGENAME or targetText ~= FULLPAGENAME) else iattn = not (targetText ~= FULLPAGENAME or targetText ~= FULLPAGENAME .. '/documentation') end end end end if not (redirectTarget and redirectTarget.exists) then iattn = true end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export ftokq18tcq3b9hzqfdvu59nnvc4qlzc 36171 36170 2018-10-20T23:30:09Z Erutuon 1339 gah 36171 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks shortcut-box">' if args.temp then output[#output + 1] = "Temporary [[Wiktionary:Shortcut|shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" else output[#output + 1] = "[[Wiktionary:Shortcut|Shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" end local attn = false for i, shortcut in ipairs(args) do local title = mw.title.new(shortcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shortcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. shortcut .. '</span>]' end else if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. shortcut .. ']' end if not demo then local redirectTarget if title.isRedirect then redirectTarget = title.redirectTarget if redirectTarget then local targetText = redirectTarget.text if title.nsText == "Template" then if SUBPAGENAME == 'documentation' then iattn = (targetText ~= BASEPAGENAME) else iattn = (targetText ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = not (targetText == BASEPAGENAME or targetText == FULLPAGENAME) else iattn = not (targetText == FULLPAGENAME or targetText == FULLPAGENAME .. '/documentation') end end end end if not (redirectTarget and redirectTarget.exists) then iattn = true end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export mw9w0ycasrgwjsgbdjokktyjmc6m9f2 36172 36171 2018-10-20T23:43:55Z Erutuon 1339 attention category was added incorrectly 36172 Scribunto text/plain local export = {} function export.show(frame) local output = {} local args = frame:getParent().args local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks shortcut-box">' if args.temp then output[#output + 1] = "Temporary [[Wiktionary:Shortcut|shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" else output[#output + 1] = "[[Wiktionary:Shortcut|Shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" end local attn = false for i, shortcut in ipairs(args) do local title = mw.title.new(shortcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shortcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. shortcut .. '</span>]' end else if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. shortcut .. ']' end if not demo then local redirectTarget = title.redirectTarget if redirectTarget then redirectTarget.fragment = '' -- remove fragment, if present local targetText = redirectTarget.fullText if title.nsText == "Template" then if SUBPAGENAME == 'documentation' then iattn = (targetText ~= BASEPAGENAME) else iattn = (targetText ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = not (targetText == BASEPAGENAME or targetText == FULLPAGENAME) else iattn = not (targetText == FULLPAGENAME or targetText == FULLPAGENAME .. '/documentation') end end end if not (redirectTarget and redirectTarget.exists) then iattn = true end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export oz4qizy39gv0dvq096ey41vp4muka3o 36173 36172 2019-03-26T07:25:48Z Benwing2 1346 make export.show callable from another module 36173 Scribunto text/plain local export = {} function export.show(frame) local output = {} -- Hacky way to allow function to be called from other modules. local args = (frame.getParent and frame:getParent().args) or frame local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if frame.getParent and FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks shortcut-box">' if args.temp then output[#output + 1] = "Temporary [[Wiktionary:Shortcut|shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" else output[#output + 1] = "[[Wiktionary:Shortcut|Shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" end local attn = false for i, shortcut in ipairs(args) do local title = mw.title.new(shortcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shortcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. shortcut .. '</span>]' end else if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. shortcut .. ']' end if not demo then local redirectTarget = title.redirectTarget if redirectTarget then redirectTarget.fragment = '' -- remove fragment, if present local targetText = redirectTarget.fullText if title.nsText == "Template" then if SUBPAGENAME == 'documentation' then iattn = (targetText ~= BASEPAGENAME) else iattn = (targetText ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = not (targetText == BASEPAGENAME or targetText == FULLPAGENAME) else iattn = not (targetText == FULLPAGENAME or targetText == FULLPAGENAME .. '/documentation') end end end if not (redirectTarget and redirectTarget.exists) then iattn = true end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export aho9dmzlzc8q9vykxr9qvsz8u1uyhae 36174 36173 2019-11-09T05:49:42Z Chuck Entz 1231 Protected "[[Module:shortcut box]]": Highly visible template/module ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite)) 36173 Scribunto text/plain local export = {} function export.show(frame) local output = {} -- Hacky way to allow function to be called from other modules. local args = (frame.getParent and frame:getParent().args) or frame local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if frame.getParent and FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks shortcut-box">' if args.temp then output[#output + 1] = "Temporary [[Wiktionary:Shortcut|shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" else output[#output + 1] = "[[Wiktionary:Shortcut|Shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" end local attn = false for i, shortcut in ipairs(args) do local title = mw.title.new(shortcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shortcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. shortcut .. '</span>]' end else if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. shortcut .. ']' end if not demo then local redirectTarget = title.redirectTarget if redirectTarget then redirectTarget.fragment = '' -- remove fragment, if present local targetText = redirectTarget.fullText if title.nsText == "Template" then if SUBPAGENAME == 'documentation' then iattn = (targetText ~= BASEPAGENAME) else iattn = (targetText ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = not (targetText == BASEPAGENAME or targetText == FULLPAGENAME) else iattn = not (targetText == FULLPAGENAME or targetText == FULLPAGENAME .. '/documentation') end end end if not (redirectTarget and redirectTarget.exists) then iattn = true end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export aho9dmzlzc8q9vykxr9qvsz8u1uyhae 36175 36174 2024-09-02T23:35:58Z Theknightwho 1347 Total rewrite. 36175 Scribunto text/plain local require_when_needed = require("Module:require when needed") local encode_uri = mw.uri.encode local format_categories = require_when_needed("Module:utilities", "format_categories") local full_url = mw.uri.fullUrl local get_current_title = mw.title.getCurrentTitle local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local title_equals = mw.title.equals local current_title local export = {} local function generate_shortcut(title, tagname, br_open, display, br_close, demo) local redlink = not title:getContent() local query = redlink and "action=edit&redlink=1&preloadtext=" .. encode_uri( "#REDIRECT [[" .. current_title.fullText .. "]]", "QUERY" ) or "redirect=no" local tag = html_create(tagname) :wikitext(br_open .. "[" .. tostring(full_url(title.fullText, query)) .. " ") if redlink then display = html_create("span") :css("color", "#CC2200") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget if redirect and ( title_equals(current_title, redirect) or ( current_title.namespace == 10 and current_title.prefixedText:gsub("/documentation$", "") == redirect.prefixedText ) ) then return tag end tag.tagName = tagname ~= "" and tagname or "span" tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) if title.namespace == 10 then return generate_shortcut(title, "code", "{{", get_template_invocation_name(title), "}}", demo) end return generate_shortcut(title, "", "", title.fullText, "", demo) end function export.format_shortcuts(list, temp, nocat, demo) current_title = current_title or get_current_title() local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Category:Shortcut boxes needing attention") end if current_title.namespace ~= 10 or not current_title:match("/documentation$") then insert(categories, "Category:Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.show(args[1], args.temp, args.nocat, args.demo) end function export.show(frame) local output = {} -- Hacky way to allow function to be called from other modules. local args = (frame.getParent and frame:getParent().args) or frame local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if frame.getParent and FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks shortcut-box">' if args.temp then output[#output + 1] = "Temporary [[Wiktionary:Shortcut|shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" else output[#output + 1] = "[[Wiktionary:Shortcut|Shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" end local attn = false for i, shortcut in ipairs(args) do local title = mw.title.new(shortcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shortcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. shortcut .. '</span>]' end else if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. shortcut .. ']' end if not demo then local redirectTarget = title.redirectTarget if redirectTarget then redirectTarget.fragment = '' -- remove fragment, if present local targetText = redirectTarget.fullText if title.nsText == "Template" then if SUBPAGENAME == 'documentation' then iattn = (targetText ~= BASEPAGENAME) else iattn = (targetText ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = not (targetText == BASEPAGENAME or targetText == FULLPAGENAME) else iattn = not (targetText == FULLPAGENAME or targetText == FULLPAGENAME .. '/documentation') end end end if not (redirectTarget and redirectTarget.exists) then iattn = true end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export rdmty5noc6a25a4xwk8lrve04zvn42n 36176 36175 2024-09-02T23:38:12Z Theknightwho 1347 Bugfix. 36176 Scribunto text/plain local require_when_needed = require("Module:require when needed") local encode_uri = mw.uri.encode local format_categories = require_when_needed("Module:utilities", "format_categories") local full_url = mw.uri.fullUrl local get_current_title = mw.title.getCurrentTitle local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local title_equals = mw.title.equals local current_title local export = {} local function generate_shortcut(title, tagname, br_open, display, br_close, demo) local redlink = not title:getContent() local query = redlink and "action=edit&redlink=1&preloadtext=" .. encode_uri( "#REDIRECT [[" .. current_title.fullText .. "]]", "QUERY" ) or "redirect=no" local tag = html_create(tagname) :wikitext(br_open .. "[" .. tostring(full_url(title.fullText, query)) .. " ") if redlink then display = html_create("span") :css("color", "#CC2200") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget if redirect and ( title_equals(current_title, redirect) or ( current_title.namespace == 10 and current_title.prefixedText:gsub("/documentation$", "") == redirect.prefixedText ) ) then return tag end tag.tagName = tagname ~= "" and tagname or "span" tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) if title.namespace == 10 then return generate_shortcut(title, "code", "{{", get_template_invocation_name(title), "}}", demo) end return generate_shortcut(title, "", "", title.fullText, "", demo) end function export.format_shortcuts(list, temp, nocat, demo) current_title = current_title or get_current_title() local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Category:Shortcut boxes needing attention") end if current_title.namespace ~= 10 or not current_title:match("/documentation$") then insert(categories, "Category:Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end function export.show(frame) local output = {} -- Hacky way to allow function to be called from other modules. local args = (frame.getParent and frame:getParent().args) or frame local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if frame.getParent and FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks shortcut-box">' if args.temp then output[#output + 1] = "Temporary [[Wiktionary:Shortcut|shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" else output[#output + 1] = "[[Wiktionary:Shortcut|Shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" end local attn = false for i, shortcut in ipairs(args) do local title = mw.title.new(shortcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shortcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. shortcut .. '</span>]' end else if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. shortcut .. ']' end if not demo then local redirectTarget = title.redirectTarget if redirectTarget then redirectTarget.fragment = '' -- remove fragment, if present local targetText = redirectTarget.fullText if title.nsText == "Template" then if SUBPAGENAME == 'documentation' then iattn = (targetText ~= BASEPAGENAME) else iattn = (targetText ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = not (targetText == BASEPAGENAME or targetText == FULLPAGENAME) else iattn = not (targetText == FULLPAGENAME or targetText == FULLPAGENAME .. '/documentation') end end end if not (redirectTarget and redirectTarget.exists) then iattn = true end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export aeyekuklnofg4oeecsnbomhybvzyqbz 36177 36176 2024-09-03T00:15:09Z Theknightwho 1347 Use namespace abbreviations. 36177 Scribunto text/plain local require_when_needed = require("Module:require when needed") local encode_uri = mw.uri.encode local format_categories = require_when_needed("Module:utilities", "format_categories") local full_url = mw.uri.fullUrl local get_current_title = mw.title.getCurrentTitle local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local title_equals = mw.title.equals local current_title local ns_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, tagname, br_open, display, br_close, demo) local redlink = not title:getContent() local query = redlink and "action=edit&redlink=1&preloadtext=" .. encode_uri( "#REDIRECT [[" .. current_title.fullText .. "]]", "QUERY" ) or "redirect=no" local tag = html_create(tagname) :wikitext(br_open .. "[" .. tostring(full_url(title.fullText, query)) .. " ") if redlink then display = html_create("span") :css("color", "#CC2200") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget if redirect and ( title_equals(current_title, redirect) or ( current_title.namespace == 10 and current_title.prefixedText:gsub("/documentation$", "") == redirect.prefixedText ) ) then return tag end tag.tagName = tagname ~= "" and tagname or "span" tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then return generate_shortcut(title, "code", "{{", get_template_invocation_name(title), "}}", demo) end local prefix = ns_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", "", text, "", demo) end function export.format_shortcuts(list, temp, nocat, demo) current_title = current_title or get_current_title() local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Category:Shortcut boxes needing attention") end if current_title.namespace ~= 10 or not current_title:match("/documentation$") then insert(categories, "Category:Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end function export.show(frame) local output = {} -- Hacky way to allow function to be called from other modules. local args = (frame.getParent and frame:getParent().args) or frame local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if frame.getParent and FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks shortcut-box">' if args.temp then output[#output + 1] = "Temporary [[Wiktionary:Shortcut|shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" else output[#output + 1] = "[[Wiktionary:Shortcut|Shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" end local attn = false for i, shortcut in ipairs(args) do local title = mw.title.new(shortcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shortcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. shortcut .. '</span>]' end else if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. shortcut .. ']' end if not demo then local redirectTarget = title.redirectTarget if redirectTarget then redirectTarget.fragment = '' -- remove fragment, if present local targetText = redirectTarget.fullText if title.nsText == "Template" then if SUBPAGENAME == 'documentation' then iattn = (targetText ~= BASEPAGENAME) else iattn = (targetText ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = not (targetText == BASEPAGENAME or targetText == FULLPAGENAME) else iattn = not (targetText == FULLPAGENAME or targetText == FULLPAGENAME .. '/documentation') end end end if not (redirectTarget and redirectTarget.exists) then iattn = true end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export pi2m9az7y310v4nn32468q3zabrwozq 36178 36177 2024-09-03T00:20:15Z Theknightwho 1347 Bugfix. 36178 Scribunto text/plain local require_when_needed = require("Module:require when needed") local encode_uri = mw.uri.encode local format_categories = require_when_needed("Module:utilities", "format_categories") local full_url = mw.uri.fullUrl local get_current_title = mw.title.getCurrentTitle local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local title_equals = mw.title.equals local current_title local ns_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, tagname, br_open, display, br_close, demo) local redlink = not title:getContent() local query = redlink and "action=edit&redlink=1&preloadtext=" .. encode_uri( "#REDIRECT [[" .. current_title.fullText .. "]]", "QUERY" ) or "redirect=no" local tag = html_create(tagname) :wikitext(br_open .. "[" .. tostring(full_url(title.fullText, query)) .. " ") if redlink then display = html_create("span") :css("color", "#CC2200") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget if redirect and ( title_equals(current_title, redirect) or ( current_title.namespace == 10 and current_title.prefixedText:gsub("/documentation$", "") == redirect.prefixedText ) ) then return tag end tag.tagName = tagname ~= "" and tagname or "span" tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then return generate_shortcut(title, "code", "{{", get_template_invocation_name(title), "}}", demo) end local prefix = ns_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", "", text, "", demo) end function export.format_shortcuts(list, temp, nocat, demo) current_title = current_title or get_current_title() local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Category:Shortcut boxes needing attention") end if current_title.namespace ~= 10 or not current_title.text:match("/documentation$") then insert(categories, "Category:Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end function export.show(frame) local output = {} -- Hacky way to allow function to be called from other modules. local args = (frame.getParent and frame:getParent().args) or frame local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if frame.getParent and FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks shortcut-box">' if args.temp then output[#output + 1] = "Temporary [[Wiktionary:Shortcut|shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" else output[#output + 1] = "[[Wiktionary:Shortcut|Shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" end local attn = false for i, shortcut in ipairs(args) do local title = mw.title.new(shortcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shortcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. shortcut .. '</span>]' end else if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. shortcut .. ']' end if not demo then local redirectTarget = title.redirectTarget if redirectTarget then redirectTarget.fragment = '' -- remove fragment, if present local targetText = redirectTarget.fullText if title.nsText == "Template" then if SUBPAGENAME == 'documentation' then iattn = (targetText ~= BASEPAGENAME) else iattn = (targetText ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = not (targetText == BASEPAGENAME or targetText == FULLPAGENAME) else iattn = not (targetText == FULLPAGENAME or targetText == FULLPAGENAME .. '/documentation') end end end if not (redirectTarget and redirectTarget.exists) then iattn = true end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export hep2qsowr779smej73ic8xtq8t6dbs7 36179 36178 2024-09-03T00:21:03Z Theknightwho 1347 36179 Scribunto text/plain local require_when_needed = require("Module:require when needed") local encode_uri = mw.uri.encode local format_categories = require_when_needed("Module:utilities", "format_categories") local full_url = mw.uri.fullUrl local get_current_title = mw.title.getCurrentTitle local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local title_equals = mw.title.equals local current_title local ns_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, tagname, br_open, display, br_close, demo) local redlink = not title:getContent() local query = redlink and "action=edit&redlink=1&preloadtext=" .. encode_uri( "#REDIRECT [[" .. current_title.fullText .. "]]", "QUERY" ) or "redirect=no" local tag = html_create(tagname) :wikitext(br_open .. "[" .. tostring(full_url(title.fullText, query)) .. " ") if redlink then display = html_create("span") :css("color", "#CC2200") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget if redirect and ( title_equals(current_title, redirect) or ( current_title.namespace == 10 and current_title.prefixedText:gsub("/documentation$", "") == redirect.prefixedText ) ) then return tag end tag.tagName = tagname ~= "" and tagname or "span" tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then return generate_shortcut(title, "code", "{{", get_template_invocation_name(title), "}}", demo) end local prefix = ns_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", "", text, "", demo) end function export.format_shortcuts(list, temp, nocat, demo) current_title = current_title or get_current_title() local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Shortcut boxes needing attention") end if current_title.namespace ~= 10 or not current_title.text:match("/documentation$") then insert(categories, "Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end function export.show(frame) local output = {} -- Hacky way to allow function to be called from other modules. local args = (frame.getParent and frame:getParent().args) or frame local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if frame.getParent and FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks shortcut-box">' if args.temp then output[#output + 1] = "Temporary [[Wiktionary:Shortcut|shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" else output[#output + 1] = "[[Wiktionary:Shortcut|Shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" end local attn = false for i, shortcut in ipairs(args) do local title = mw.title.new(shortcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shortcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. shortcut .. '</span>]' end else if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. shortcut .. ']' end if not demo then local redirectTarget = title.redirectTarget if redirectTarget then redirectTarget.fragment = '' -- remove fragment, if present local targetText = redirectTarget.fullText if title.nsText == "Template" then if SUBPAGENAME == 'documentation' then iattn = (targetText ~= BASEPAGENAME) else iattn = (targetText ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = not (targetText == BASEPAGENAME or targetText == FULLPAGENAME) else iattn = not (targetText == FULLPAGENAME or targetText == FULLPAGENAME .. '/documentation') end end end if not (redirectTarget and redirectTarget.exists) then iattn = true end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export 787a8c3aoug11dp2zpcbifc7ie39bd7 36180 36179 2024-09-03T19:14:03Z Theknightwho 1347 Make sure clicking on redlinks from documentation pages generates links to the main template, not the documentation page. 36180 Scribunto text/plain local require_when_needed = require("Module:require when needed") local encode_uri = mw.uri.encode local format_categories = require_when_needed("Module:utilities", "format_categories") local full_url = mw.uri.fullUrl local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local title_equals = mw.title.equals local current_title = mw.title.getCurrentTitle() local target = current_title.prefixedText -- If this is a documentation subpage, make `target` point to the main page. do local namespace = current_title.namespace if namespace == 10 or namespace == 828 then target = target:gsub("(.[\128-\191]*)/documentation$", "%1") end end local ns_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, tagname, br_open, display, br_close, demo) local redlink = not title:getContent() local query = redlink and "action=edit&redlink=1&preloadtext=" .. encode_uri( "#REDIRECT [[" .. target .. "]]", "QUERY" ) or "redirect=no" local tag = html_create(tagname) :wikitext(br_open .. "[" .. tostring(full_url(title.fullText, query)) .. " ") if redlink then display = html_create("span") :css("color", "#CC2200") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget -- Check if the target page is the current page or (if this is a documentation subpage) the main page. if redirect and (title_equals(current_title, redirect) or target == redirect.prefixedText) then return tag end tag.tagName = tagname ~= "" and tagname or "span" tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then return generate_shortcut(title, "code", "{{", get_template_invocation_name(title), "}}", demo) end local prefix = ns_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", "", text, "", demo) end function export.format_shortcuts(list, temp, nocat, demo) local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Shortcut boxes needing attention") end -- Don't categorise documentation subpages. if target == current_title.prefixedText then insert(categories, "Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end function export.show(frame) local output = {} -- Hacky way to allow function to be called from other modules. local args = (frame.getParent and frame:getParent().args) or frame local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if frame.getParent and FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks shortcut-box">' if args.temp then output[#output + 1] = "Temporary [[Wiktionary:Shortcut|shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" else output[#output + 1] = "[[Wiktionary:Shortcut|Shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" end local attn = false for i, shortcut in ipairs(args) do local title = mw.title.new(shortcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shortcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. shortcut .. '</span>]' end else if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. shortcut .. ']' end if not demo then local redirectTarget = title.redirectTarget if redirectTarget then redirectTarget.fragment = '' -- remove fragment, if present local targetText = redirectTarget.fullText if title.nsText == "Template" then if SUBPAGENAME == 'documentation' then iattn = (targetText ~= BASEPAGENAME) else iattn = (targetText ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = not (targetText == BASEPAGENAME or targetText == FULLPAGENAME) else iattn = not (targetText == FULLPAGENAME or targetText == FULLPAGENAME .. '/documentation') end end end if not (redirectTarget and redirectTarget.exists) then iattn = true end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export lznnapbs4bm1qw12oigt87zwj8s9exw 36181 36180 2024-09-03T19:24:01Z Theknightwho 1347 Always use code tags. 36181 Scribunto text/plain local require_when_needed = require("Module:require when needed") local encode_uri = mw.uri.encode local format_categories = require_when_needed("Module:utilities", "format_categories") local full_url = mw.uri.fullUrl local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local title_equals = mw.title.equals local current_title = mw.title.getCurrentTitle() local target = current_title.prefixedText -- If this is a documentation subpage, make `target` point to the main page. do local namespace = current_title.namespace if namespace == 10 or namespace == 828 then target = target:gsub("(.[\128-\191]*)/documentation$", "%1") end end local ns_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, br_open, display, br_close, demo) local redlink = not title:getContent() local query = redlink and "action=edit&redlink=1&preloadtext=" .. encode_uri( "#REDIRECT [[" .. target .. "]]", "QUERY" ) or "redirect=no" local tag = html_create("code") :wikitext(br_open .. "[" .. tostring(full_url(title.fullText, query)) .. " ") if redlink then display = html_create("span") :css("color", "#CC2200") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget -- Check if the target page is the current page or (if this is a documentation subpage) the main page. if redirect and (title_equals(current_title, redirect) or target == redirect.prefixedText) then return tag end tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then return generate_shortcut(title, "{{", get_template_invocation_name(title), "}}", demo) end local prefix = ns_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", text, "", demo) end function export.format_shortcuts(list, temp, nocat, demo) local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Shortcut boxes needing attention") end -- Don't categorise documentation subpages. if target == current_title.prefixedText then insert(categories, "Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end function export.show(frame) local output = {} -- Hacky way to allow function to be called from other modules. local args = (frame.getParent and frame:getParent().args) or frame local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if frame.getParent and FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks shortcut-box">' if args.temp then output[#output + 1] = "Temporary [[Wiktionary:Shortcut|shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" else output[#output + 1] = "[[Wiktionary:Shortcut|Shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" end local attn = false for i, shortcut in ipairs(args) do local title = mw.title.new(shortcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shortcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. shortcut .. '</span>]' end else if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. shortcut .. ']' end if not demo then local redirectTarget = title.redirectTarget if redirectTarget then redirectTarget.fragment = '' -- remove fragment, if present local targetText = redirectTarget.fullText if title.nsText == "Template" then if SUBPAGENAME == 'documentation' then iattn = (targetText ~= BASEPAGENAME) else iattn = (targetText ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = not (targetText == BASEPAGENAME or targetText == FULLPAGENAME) else iattn = not (targetText == FULLPAGENAME or targetText == FULLPAGENAME .. '/documentation') end end end if not (redirectTarget and redirectTarget.exists) then iattn = true end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export d6lltmu4udmydk6gx77tfwsfbkd57qv 36182 36181 2024-09-03T20:55:17Z Theknightwho 1347 Also consider the fragment of redirects when checking if they're correct. 36182 Scribunto text/plain local require_when_needed = require("Module:require when needed") local encode_uri = mw.uri.encode local format_categories = require_when_needed("Module:utilities", "format_categories") local full_url = mw.uri.fullUrl local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local current_title = mw.title.getCurrentTitle() -- Generate the correct target for incoming redirects to the location of the shortcut box. local function generate_target(target) local namespace = current_title.namespace -- If in the template or module namespace, make `target` point to the template/module, not any documentation subpage. if namespace == 10 or namespace == 828 then target, documentation = target:gsub("(.[\128-\191]*)/documentation$", "%1") return target, documentation == 1 and true or nil end -- Otherwise, point to the current section, or the page if at the top. local current_section = require("Module:utilities").get_current_section() if current_section == 0 then -- Section 0 is the top of the page. return target end local i = 0 for heading in require("Module:template parser").findHeadings(current_title:getContent()) do i = i + 1 if i == current_section then return target .. "#" .. -- Generate the fragment. require("Module:string utilities").decode_entities( mw.uri.anchorEncode(heading)) :gsub("_", " ") end end end local target, documentation = generate_target(current_title.prefixedText) local ns_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, br_open, display, br_close, demo) local redlink = not title:getContent() local query = redlink and "action=edit&redlink=1&preloadtext=" .. encode_uri( "#REDIRECT [[" .. target .. "]]", "QUERY" ) or "redirect=no" local tag = html_create("code") :wikitext(br_open .. "[" .. tostring(full_url(title.fullText, query)) .. " ") if redlink then display = html_create("span") :css("color", "#CC2200") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget -- Check the target is correct. if redirect and redirect.fullText == target then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then return generate_shortcut(title, "{{", get_template_invocation_name(title), "}}", demo) end local prefix = ns_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", text, "", demo) end function export.format_shortcuts(list, temp, nocat, demo) local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Shortcut boxes needing attention") end -- Don't categorise documentation subpages as having shortcuts. if not documentation then insert(categories, "Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end function export.show(frame) local output = {} -- Hacky way to allow function to be called from other modules. local args = (frame.getParent and frame:getParent().args) or frame local demo = false local FULLPAGENAME = mw.title.getCurrentTitle().fullText local BASEPAGENAME, SUBPAGENAME = FULLPAGENAME:match("^(.-)/([^/]-)$") -- BASEPAGENAME = BASEPAGENAME or FULLPAGENAME if frame.getParent and FULLPAGENAME == frame:getParent():getTitle() then demo = true end output[#output + 1] = '<div class="noprint plainlinks shortcut-box">' if args.temp then output[#output + 1] = "Temporary [[Wiktionary:Shortcut|shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" else output[#output + 1] = "[[Wiktionary:Shortcut|Shortcut" .. (args[2] and 's' or '') .. "]]:<br/>" end local attn = false for i, shortcut in ipairs(args) do local title = mw.title.new(shortcut) if not title then output[#output + 1] = '<span class="attentionseeking">(<code>' .. mw.text.nowiki(shortcut) .. '</code>)</span><br/>' attn = true else local iattn = false local item if not title.exists then attn = true local query = 'action=edit&redlink=1&preloadtext=' .. mw.uri.encode('#REDIRECT [[' .. FULLPAGENAME .. ']]') if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. title.text .. '</span>]}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, query)) .. ' <span style="color:#c20;">' .. shortcut .. '</span>]' end else if title.nsText == "Template" then item = '<code>{{[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. title.text .. ']}}</code>' else item = '[' .. tostring(mw.uri.fullUrl(shortcut, 'redirect=no')) .. ' ' .. shortcut .. ']' end if not demo then local redirectTarget = title.redirectTarget if redirectTarget then redirectTarget.fragment = '' -- remove fragment, if present local targetText = redirectTarget.fullText if title.nsText == "Template" then if SUBPAGENAME == 'documentation' then iattn = (targetText ~= BASEPAGENAME) else iattn = (targetText ~= FULLPAGENAME) end else if SUBPAGENAME == 'documentation' then iattn = not (targetText == BASEPAGENAME or targetText == FULLPAGENAME) else iattn = not (targetText == FULLPAGENAME or targetText == FULLPAGENAME .. '/documentation') end end end if not (redirectTarget and redirectTarget.exists) then iattn = true end end end if iattn then item = '<span class="attentionseeking">' .. item .. '</span>' end output[#output + 1] = item .. '<br/>' attn = attn or iattn end end if not args.nocat then if attn then output[#output + 1] = '[[Category:Shortcut boxes needing attention]]' end if SUBPAGENAME ~= 'documentation' then output[#output + 1] = '[[Category:Wiktionary pages with shortcuts]]' end end output[#output + 1] = '</div>' return table.concat(output) end return export m9fuxhenlbtk4ir15qqezgm01azh0lv 36183 36182 2024-09-03T21:16:05Z Theknightwho 1347 Remove old function, which is now completely replaced. 36183 Scribunto text/plain local require_when_needed = require("Module:require when needed") local encode_uri = mw.uri.encode local format_categories = require_when_needed("Module:utilities", "format_categories") local full_url = mw.uri.fullUrl local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local current_title = mw.title.getCurrentTitle() -- Generate the correct target for incoming redirects to the location of the shortcut box. local function generate_target(target) local namespace = current_title.namespace -- If in the template or module namespace, make `target` point to the template/module, not any documentation subpage. if namespace == 10 or namespace == 828 then local documentation target, documentation = target:gsub("(.[\128-\191]*)/documentation$", "%1") return target, documentation == 1 and true or nil end -- Otherwise, point to the current section, or the page if at the top. local current_section = require("Module:utilities").get_current_section() if current_section == 0 then -- Section 0 is the top of the page. return target end local i = 0 for heading in require("Module:template parser").findHeadings(current_title:getContent()) do i = i + 1 if i == current_section then return target .. "#" .. -- Generate the fragment. require("Module:string utilities").decode_entities( mw.uri.anchorEncode(heading)) :gsub("_", " ") end end end local target, documentation = generate_target(current_title.prefixedText) local ns_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, br_open, display, br_close, demo) local redlink = not title:getContent() local query = redlink and "action=edit&redlink=1&preloadtext=" .. encode_uri( "#REDIRECT [[" .. target .. "]]", "QUERY" ) or "redirect=no" local tag = html_create("code") :wikitext(br_open .. "[" .. tostring(full_url(title.fullText, query)) .. " ") if redlink then display = html_create("span") :css("color", "#CC2200") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget -- Check the target is correct. if redirect and redirect.fullText == target then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then return generate_shortcut(title, "{{", get_template_invocation_name(title), "}}", demo) end local prefix = ns_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", text, "", demo) end function export.format_shortcuts(list, temp, nocat, demo) local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Shortcut boxes needing attention") end -- Don't categorise documentation subpages as having shortcuts. if not documentation then insert(categories, "Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export bmqfv097bch5uqsxbcqydlz3epmbowe 36184 36183 2024-09-03T21:19:48Z Theknightwho 1347 Brief comment explaining how format_shortcuts works. 36184 Scribunto text/plain local require_when_needed = require("Module:require when needed") local encode_uri = mw.uri.encode local format_categories = require_when_needed("Module:utilities", "format_categories") local full_url = mw.uri.fullUrl local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local current_title = mw.title.getCurrentTitle() -- Generate the correct target for incoming redirects to the location of the shortcut box. local function generate_target(target) local namespace = current_title.namespace -- If in the template or module namespace, make `target` point to the template/module, not any documentation subpage. if namespace == 10 or namespace == 828 then local documentation target, documentation = target:gsub("(.[\128-\191]*)/documentation$", "%1") return target, documentation == 1 and true or nil end -- Otherwise, point to the current section, or the page if at the top. local current_section = require("Module:utilities").get_current_section() if current_section == 0 then -- Section 0 is the top of the page. return target end local i = 0 for heading in require("Module:template parser").findHeadings(current_title:getContent()) do i = i + 1 if i == current_section then return target .. "#" .. -- Generate the fragment. require("Module:string utilities").decode_entities( mw.uri.anchorEncode(heading)) :gsub("_", " ") end end end local target, documentation = generate_target(current_title.prefixedText) local ns_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, br_open, display, br_close, demo) local redlink = not title:getContent() local query = redlink and "action=edit&redlink=1&preloadtext=" .. encode_uri( "#REDIRECT [[" .. target .. "]]", "QUERY" ) or "redirect=no" local tag = html_create("code") :wikitext(br_open .. "[" .. tostring(full_url(title.fullText, query)) .. " ") if redlink then display = html_create("span") :css("color", "#CC2200") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget -- Check the target is correct. if redirect and redirect.fullText == target then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then return generate_shortcut(title, "{{", get_template_invocation_name(title), "}}", demo) end local prefix = ns_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", text, "", demo) end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Shortcut boxes needing attention") end -- Don't categorise documentation subpages as having shortcuts. if not documentation then insert(categories, "Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export 9m38gzdfeibd32ire04sm4tphy7gqwk 36185 36184 2024-09-03T21:29:13Z Theknightwho 1347 36185 Scribunto text/plain local require_when_needed = require("Module:require when needed") local encode_uri = mw.uri.encode local format_categories = require_when_needed("Module:utilities", "format_categories") local full_url = mw.uri.fullUrl local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local tostring = tostring local current_title = mw.title.getCurrentTitle() -- Generate the correct target for incoming redirects to the location of the shortcut box. local function generate_target(target) local namespace = current_title.namespace -- If in the template or module namespace, make `target` point to the template/module, not any documentation subpage. if namespace == 10 or namespace == 828 then local documentation target, documentation = target:gsub("(.[\128-\191]*)/documentation$", "%1") return target, documentation == 1 and true or nil end -- Otherwise, point to the current section, or the page if at the top. local current_section = require("Module:utilities").get_current_section() if current_section == 0 then -- Section 0 is the top of the page. return target end local i = 0 for heading in require("Module:template parser").findHeadings(current_title:getContent()) do i = i + 1 if i == current_section then return target .. "#" .. -- Generate the fragment. require("Module:string utilities").decode_entities( mw.uri.anchorEncode(heading)) :gsub("_", " ") end end end local target, documentation = generate_target(current_title.prefixedText) local ns_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, br_open, display, br_close, demo) local redlink = not title:getContent() local query = redlink and "action=edit&redlink=1&preloadtext=" .. encode_uri( "#REDIRECT [[" .. target .. "]]", "QUERY" ) or "redirect=no" local tag = html_create("code") :wikitext(br_open .. "[" .. tostring(full_url(title.fullText, query)) .. " ") if redlink then display = html_create("span") :css("color", "#CC2200") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget -- Check the target is correct. if redirect and redirect.fullText == target then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then return generate_shortcut(title, "{{", get_template_invocation_name(title), "}}", demo) end local prefix = ns_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", text, "", demo) end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Shortcut boxes needing attention") end -- Don't categorise documentation subpages as having shortcuts. if not documentation then insert(categories, "Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export 28ee5orghn6t7mhld1ogfbfs1ugaeka 36186 36185 2024-09-04T05:43:26Z Theknightwho 1347 Abbreviate "Template:" to "T:" in the rare situations a template prefix needs to be displayed. 36186 Scribunto text/plain local require_when_needed = require("Module:require when needed") local encode_uri = mw.uri.encode local format_categories = require_when_needed("Module:utilities", "format_categories") local full_url = mw.uri.fullUrl local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local tostring = tostring local current_title = mw.title.getCurrentTitle() -- Generate the correct target for incoming redirects to the location of the shortcut box. local function generate_target(target) local namespace = current_title.namespace -- If in the template or module namespace, make `target` point to the template/module, not any documentation subpage. if namespace == 10 or namespace == 828 then local documentation target, documentation = target:gsub("(.[\128-\191]*)/documentation$", "%1") return target, documentation == 1 and true or nil end -- Otherwise, point to the current section, or the page if at the top. local current_section = require("Module:utilities").get_current_section() if current_section == 0 then -- Section 0 is the top of the page. return target end local i = 0 for heading in require("Module:template parser").findHeadings(current_title:getContent()) do i = i + 1 if i == current_section then return target .. "#" .. -- Generate the fragment. require("Module:string utilities").decode_entities( mw.uri.anchorEncode(heading)) :gsub("_", " ") end end end local target, documentation = generate_target(current_title.prefixedText) local ns_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, br_open, display, br_close, demo) local redlink = not title:getContent() local query = redlink and "action=edit&redlink=1&preloadtext=" .. encode_uri( "#REDIRECT [[" .. target .. "]]", "QUERY" ) or "redirect=no" local tag = html_create("code") :wikitext(br_open .. "[" .. tostring(full_url(title.fullText, query)) .. " ") if redlink then display = html_create("span") :css("color", "#CC2200") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget -- Check the target is correct. if redirect and redirect.fullText == target then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then -- The "Template:" prefix will still be needed in rare situations, so abbreviate it to "T:". return generate_shortcut(title, "{{", get_template_invocation_name(title):gsub("^Template:", "T:"), "}}", demo) end local prefix = ns_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", text, "", demo) end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Shortcut boxes needing attention") end -- Don't categorise documentation subpages as having shortcuts. if not documentation then insert(categories, "Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export rvpgtm1exjebbepmf5twzdhqq67m5o7 36187 36186 2024-09-07T14:54:57Z Theknightwho 1347 Minor code simplification. 36187 Scribunto text/plain local require_when_needed = require("Module:require when needed") local encode_uri = mw.uri.encode local format_categories = require_when_needed("Module:utilities", "format_categories") local full_url = mw.uri.fullUrl local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local tostring = tostring local current_title = mw.title.getCurrentTitle() -- Generate the correct target for incoming redirects to the location of the shortcut box. local namespace, target, documentation = current_title.namespace, current_title.prefixedText -- If in the template or module namespace, make `target` point to the template/module, not any documentation subpage. if namespace == 10 or namespace == 828 then target, documentation = target:gsub("(.[\128-\191]*)/documentation$", "%1") documentation = documentation == 1 else -- Otherwise, point to the current section, or the page if at the top. local current_section = require("Module:utilities").get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading. local i = 0 for heading in require("Module:template parser").findHeadings(current_title:getContent()) do i = i + 1 if i == current_section then -- Generate the fragment. target = target .. "#" .. require("Module:string utilities").decode_entities(mw.uri.anchorEncode(heading)) :gsub("_", " ") break end end end end local namespace_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, br_open, display, br_close, demo) local redlink = not title:getContent() local query = redlink and "action=edit&redlink=1&preloadtext=" .. encode_uri( "#REDIRECT [[" .. target .. "]]", "QUERY" ) or "redirect=no" local tag = html_create("code") :wikitext(br_open .. "[" .. tostring(full_url(title.fullText, query)) .. " ") if redlink then display = html_create("span") :css("color", "#CC2200") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget -- Check the target is correct. if redirect and redirect.fullText == target then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then -- The "Template:" prefix will still be needed in rare situations, so abbreviate it to "T:". return generate_shortcut(title, "{{", get_template_invocation_name(title):gsub("^Template:", "T:"), "}}", demo) end local prefix = namespace_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", text, "", demo) end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Shortcut boxes needing attention") end -- Don't categorise documentation subpages as having shortcuts. if not documentation then insert(categories, "Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export 8t7jwchrwddh9hfoe8y5v8cngdm1435 36188 36187 2024-09-10T11:37:01Z Theknightwho 1347 get_current_section moved to [[Module:pages]]. 36188 Scribunto text/plain local require_when_needed = require("Module:require when needed") local encode_uri = mw.uri.encode local format_categories = require_when_needed("Module:utilities", "format_categories") local full_url = mw.uri.fullUrl local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local tostring = tostring local current_title = mw.title.getCurrentTitle() -- Generate the correct target for incoming redirects to the location of the shortcut box. local namespace, target, documentation = current_title.namespace, current_title.prefixedText -- If in the template or module namespace, make `target` point to the template/module, not any documentation subpage. if namespace == 10 or namespace == 828 then target, documentation = target:gsub("(.[\128-\191]*)/documentation$", "%1") documentation = documentation == 1 else -- Otherwise, point to the current section, or the page if at the top. local current_section = require("Module:pages").get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading. local i = 0 for heading in require("Module:template parser").findHeadings(current_title:getContent()) do i = i + 1 if i == current_section then -- Generate the fragment. target = target .. "#" .. require("Module:string utilities").decode_entities(mw.uri.anchorEncode(heading)) :gsub("_", " ") break end end end end local namespace_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, br_open, display, br_close, demo) local redlink = not title:getContent() local query = redlink and "action=edit&redlink=1&preloadtext=" .. encode_uri( "#REDIRECT [[" .. target .. "]]", "QUERY" ) or "redirect=no" local tag = html_create("code") :wikitext(br_open .. "[" .. tostring(full_url(title.fullText, query)) .. " ") if redlink then display = html_create("span") :css("color", "#CC2200") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget -- Check the target is correct. if redirect and redirect.fullText == target then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then -- The "Template:" prefix will still be needed in rare situations, so abbreviate it to "T:". return generate_shortcut(title, "{{", get_template_invocation_name(title):gsub("^Template:", "T:"), "}}", demo) end local prefix = namespace_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", text, "", demo) end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Shortcut boxes needing attention") end -- Don't categorise documentation subpages as having shortcuts. if not documentation then insert(categories, "Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export as6f4rixfyjckvo9k7cx068uokrle0l 36189 36188 2024-09-15T10:44:19Z Theknightwho 1347 Don't automatically generate a redirect if there's a redlink in demo mode, use a table to build the query, and use a stylesheet for external redlinks. 36189 Scribunto text/plain local require_when_needed = require("Module:require when needed") local encode_uri = mw.uri.encode local format_categories = require_when_needed("Module:utilities", "format_categories") local full_url = mw.uri.fullUrl local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local tostring = tostring local current_title = mw.title.getCurrentTitle() -- Generate the correct target for incoming redirects to the location of the shortcut box. local namespace, target, documentation = current_title.namespace, current_title.prefixedText -- If in the template or module namespace, make `target` point to the template/module, not any documentation subpage. if namespace == 10 or namespace == 828 then target, documentation = target:gsub("(.[\128-\191]*)/documentation$", "%1") documentation = documentation == 1 else -- Otherwise, point to the current section, or the page if at the top. local current_section = require("Module:pages").get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading. local i = 0 for heading in require("Module:template parser").findHeadings(current_title:getContent()) do i = i + 1 if i == current_section then -- Generate the fragment. target = target .. "#" .. require("Module:string utilities").decode_entities(mw.uri.anchorEncode(heading)) :gsub("_", " ") break end end end end local namespace_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, br_open, display, br_close, demo) local redlink = not title:getContent() local query = {} if redlink and not demo then query.action = "edit" query.redlink = "1" query.preloadtext = "#REDIRECT [[" .. target .. "]]" else query.redirect = "no" end local tag = html_create("code") :wikitext(br_open .. "[" .. tostring(full_url(title.fullText, query)) .. " ") if redlink then display = html_create("span") :addClass("redlink") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget -- Check the target is correct. if redirect and redirect.fullText == target then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then -- The "Template:" prefix will still be needed in rare situations, so abbreviate it to "T:". return generate_shortcut(title, "{{", get_template_invocation_name(title):gsub("^Template:", "T:"), "}}", demo) end local prefix = namespace_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", text, "", demo) end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Shortcut boxes needing attention") end -- Don't categorise documentation subpages as having shortcuts. if not documentation then insert(categories, "Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") .. require("Module:TemplateStyles")("Module:shortcut box/styles.css") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export bha5ffsbfpwk2jn1n6aa5ideks7vrwz 36190 36189 2024-09-15T12:03:23Z Theknightwho 1347 Bugfix. 36190 Scribunto text/plain local require_when_needed = require("Module:require when needed") local encode_uri = mw.uri.encode local format_categories = require_when_needed("Module:utilities", "format_categories") local full_url = mw.uri.fullUrl local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local tostring = tostring local current_title = mw.title.getCurrentTitle() -- Generate the correct target for incoming redirects to the location of the shortcut box. local namespace, target, documentation = current_title.namespace, current_title.prefixedText -- If in the template or module namespace, make `target` point to the template/module, not any documentation subpage. if namespace == 10 or namespace == 828 then target, documentation = target:gsub("(.[\128-\191]*)/documentation$", "%1") documentation = documentation == 1 else -- Otherwise, point to the current section, or the page if at the top. local current_section = require("Module:pages").get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading. local i = 0 for heading in require("Module:template parser").findHeadings(current_title:getContent()) do i = i + 1 if i == current_section then -- Generate the fragment. target = target .. "#" .. require("Module:string utilities").decode_entities(mw.uri.anchorEncode(heading)) :gsub("_", " ") break end end end end local namespace_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, br_open, display, br_close, demo) local redlink = not title:getContent() local query = {} if redlink then query.action = "edit" query.redlink = "1" if not demo then query.preloadtext = "#REDIRECT [[" .. target .. "]]" end else query.redirect = "no" end local tag = html_create("code") :wikitext(br_open .. "[" .. tostring(full_url(title.fullText, query)) .. " ") if redlink then display = html_create("span") :addClass("redlink") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget -- Check the target is correct. if redirect and redirect.fullText == target then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then -- The "Template:" prefix will still be needed in rare situations, so abbreviate it to "T:". return generate_shortcut(title, "{{", get_template_invocation_name(title):gsub("^Template:", "T:"), "}}", demo) end local prefix = namespace_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", text, "", demo) end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Shortcut boxes needing attention") end -- Don't categorise documentation subpages as having shortcuts. if not documentation then insert(categories, "Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") .. require("Module:TemplateStyles")("Module:shortcut box/styles.css") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export 8m5pwahrezcsikwhboogwbke5pvod0v 36191 36190 2024-09-15T12:53:31Z Theknightwho 1347 Use title object's fullUrl method. 36191 Scribunto text/plain local require_when_needed = require("Module:require when needed") local encode_uri = mw.uri.encode local format_categories = require_when_needed("Module:utilities", "format_categories") local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local tostring = tostring local current_title = mw.title.getCurrentTitle() -- Generate the correct target for incoming redirects to the location of the shortcut box. local namespace, target, documentation = current_title.namespace, current_title.prefixedText -- If in the template or module namespace, make `target` point to the template/module, not any documentation subpage. if namespace == 10 or namespace == 828 then target, documentation = target:gsub("(.[\128-\191]*)/documentation$", "%1") documentation = documentation == 1 else -- Otherwise, point to the current section, or the page if at the top. local current_section = require("Module:pages").get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading. local i = 0 for heading in require("Module:template parser").findHeadings(current_title:getContent()) do i = i + 1 if i == current_section then -- Generate the fragment. target = target .. "#" .. require("Module:string utilities").decode_entities(mw.uri.anchorEncode(heading)) :gsub("_", " ") break end end end end local namespace_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, br_open, display, br_close, demo) local redlink = not title:getContent() local query = {} if redlink then query.action = "edit" query.redlink = "1" if not demo then query.preloadtext = "#REDIRECT [[" .. target .. "]]" end else query.redirect = "no" end local tag = html_create("code") :wikitext(br_open .. "[" .. tostring(title:fullUrl(query)) .. " ") if redlink then display = html_create("span") :addClass("redlink") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget -- Check the target is correct. if redirect and redirect.fullText == target then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then -- The "Template:" prefix will still be needed in rare situations, so abbreviate it to "T:". return generate_shortcut(title, "{{", get_template_invocation_name(title):gsub("^Template:", "T:"), "}}", demo) end local prefix = namespace_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", text, "", demo) end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Shortcut boxes needing attention") end -- Don't categorise documentation subpages as having shortcuts. if not documentation then insert(categories, "Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") .. require("Module:TemplateStyles")("Module:shortcut box/styles.css") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export 9skh7yn1ue40nedbfc27j7qzohsl666 36192 36191 2024-09-15T12:54:14Z Theknightwho 1347 Remove unused variable. 36192 Scribunto text/plain local require_when_needed = require("Module:require when needed") local format_categories = require_when_needed("Module:utilities", "format_categories") local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local tostring = tostring local current_title = mw.title.getCurrentTitle() -- Generate the correct target for incoming redirects to the location of the shortcut box. local namespace, target, documentation = current_title.namespace, current_title.prefixedText -- If in the template or module namespace, make `target` point to the template/module, not any documentation subpage. if namespace == 10 or namespace == 828 then target, documentation = target:gsub("(.[\128-\191]*)/documentation$", "%1") documentation = documentation == 1 else -- Otherwise, point to the current section, or the page if at the top. local current_section = require("Module:pages").get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading. local i = 0 for heading in require("Module:template parser").findHeadings(current_title:getContent()) do i = i + 1 if i == current_section then -- Generate the fragment. target = target .. "#" .. require("Module:string utilities").decode_entities(mw.uri.anchorEncode(heading)) :gsub("_", " ") break end end end end local namespace_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, br_open, display, br_close, demo) local redlink = not title:getContent() local query = {} if redlink then query.action = "edit" query.redlink = "1" if not demo then query.preloadtext = "#REDIRECT [[" .. target .. "]]" end else query.redirect = "no" end local tag = html_create("code") :wikitext(br_open .. "[" .. tostring(title:fullUrl(query)) .. " ") if redlink then display = html_create("span") :addClass("redlink") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget -- Check the target is correct. if redirect and redirect.fullText == target then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then -- The "Template:" prefix will still be needed in rare situations, so abbreviate it to "T:". return generate_shortcut(title, "{{", get_template_invocation_name(title):gsub("^Template:", "T:"), "}}", demo) end local prefix = namespace_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", text, "", demo) end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Shortcut boxes needing attention") end -- Don't categorise documentation subpages as having shortcuts. if not documentation then insert(categories, "Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") .. require("Module:TemplateStyles")("Module:shortcut box/styles.css") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export e3y117eki0ntyf4u4rg2kcyehhjbqyx 36193 36192 2024-09-15T13:07:04Z Theknightwho 1347 36193 Scribunto text/plain local require_when_needed = require("Module:require when needed") local format_categories = require_when_needed("Module:utilities", "format_categories") local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local tostring = tostring local current_title = mw.title.getCurrentTitle() -- Generate the correct target for incoming redirects to the location of the shortcut box. local namespace, target, documentation = current_title.namespace, current_title.prefixedText -- If in the template or module namespace, make `target` point to the template/module, not any documentation subpage. if namespace == 10 or namespace == 828 then target, documentation = target:gsub("(.[\128-\191]*)/documentation$", "%1") documentation = documentation == 1 else -- Otherwise, point to the current section, or the page if at the top. local current_section = require("Module:pages").get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading. local i = 0 for heading in require("Module:template parser").findHeadings(current_title:getContent()) do i = i + 1 if i == current_section then -- Generate the fragment. target = target .. "#" .. require("Module:string utilities").decode_entities(mw.uri.anchorEncode(heading)) :gsub("_", " ") break end end end end local namespace_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, br_open, display, br_close, demo) local redlink = not title:getContent() local query = {} if redlink then query.action = "edit" query.redlink = true if not demo then query.preloadtext = "#REDIRECT [[" .. target .. "]]" end else query.redirect = "no" end local tag = html_create("code") :wikitext(br_open .. "[" .. tostring(title:fullUrl(query)) .. " ") if redlink then display = html_create("span") :addClass("redlink") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget -- Check the target is correct. if redirect and redirect.fullText == target then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then -- The "Template:" prefix will still be needed in rare situations, so abbreviate it to "T:". return generate_shortcut(title, "{{", get_template_invocation_name(title):gsub("^Template:", "T:"), "}}", demo) end local prefix = namespace_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", text, "", demo) end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Shortcut boxes needing attention") end -- Don't categorise documentation subpages as having shortcuts. if not documentation then insert(categories, "Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") .. require("Module:TemplateStyles")("Module:shortcut box/styles.css") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export cf40mu2tdavpcabkf25kxlkpc04qcy0 36194 36193 2024-09-16T04:31:48Z Theknightwho 1347 templatestyles no longer needed. 36194 Scribunto text/plain local require_when_needed = require("Module:require when needed") local format_categories = require_when_needed("Module:utilities", "format_categories") local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local tostring = tostring local current_title = mw.title.getCurrentTitle() -- Generate the correct target for incoming redirects to the location of the shortcut box. local namespace, target, documentation = current_title.namespace, current_title.prefixedText -- If in the template or module namespace, make `target` point to the template/module, not any documentation subpage. if namespace == 10 or namespace == 828 then target, documentation = target:gsub("(.[\128-\191]*)/documentation$", "%1") documentation = documentation == 1 else -- Otherwise, point to the current section, or the page if at the top. local current_section = require("Module:pages").get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading. local i = 0 for heading in require("Module:template parser").findHeadings(current_title:getContent()) do i = i + 1 if i == current_section then -- Generate the fragment. target = target .. "#" .. require("Module:string utilities").decode_entities(mw.uri.anchorEncode(heading)) :gsub("_", " ") break end end end end local namespace_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, br_open, display, br_close, demo) local redlink = not title:getContent() local query = {} if redlink then query.action = "edit" query.redlink = true if not demo then query.preloadtext = "#REDIRECT [[" .. target .. "]]" end else query.redirect = "no" end local tag = html_create("code") :wikitext(br_open .. "[" .. tostring(title:fullUrl(query)) .. " ") if redlink then display = html_create("span") :addClass("redlink") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget -- Check the target is correct. if redirect and redirect.fullText == target then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then -- The "Template:" prefix will still be needed in rare situations, so abbreviate it to "T:". return generate_shortcut(title, "{{", get_template_invocation_name(title):gsub("^Template:", "T:"), "}}", demo) end local prefix = namespace_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", text, "", demo) end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Shortcut boxes needing attention") end -- Don't categorise documentation subpages as having shortcuts. if not documentation then insert(categories, "Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export c5omq5qdpzezhb19p3ahib7slktuw0y 36195 36194 2024-10-04T02:34:04Z Theknightwho 1347 find_headings iterator now returns a heading object, so that info can be calculated as needed instead of for every node. Also validate headings, so that headings which fail on expansion don't mess up fragments. 36195 Scribunto text/plain local require_when_needed = require("Module:require when needed") local format_categories = require_when_needed("Module:utilities", "format_categories") local get_template_invocation_name = require_when_needed("Module:template parser", "getTemplateInvocationName") local html_create = mw.html.create local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local tostring = tostring local current_title = mw.title.getCurrentTitle() -- Generate the correct target for incoming redirects to the location of the shortcut box. local namespace, target, documentation = current_title.namespace, current_title.prefixedText -- If in the template or module namespace, make `target` point to the template/module, not any documentation subpage. if namespace == 10 or namespace == 828 then target, documentation = target:gsub("(.[\128-\191]*)/documentation$", "%1") documentation = documentation == 1 else -- Otherwise, point to the current section, or the page if at the top. local current_section = require("Module:pages").get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading. local headings, i = {}, 0 for heading in require("Module:template parser").find_headings(current_title:getContent()) do i = i + 1 headings[i] = heading if heading.section == current_section then -- Once the current section has been found, validate headings in reverse order until a valid one is found. local anchor repeat anchor = headings[i]:get_anchor() i = i - 1 until anchor ~= nil or i == 0 -- Generate the fragment. target = target .. (anchor == nil and "" or "#" .. anchor:gsub("_", " ")) break end end end end local namespace_abbreviations = { [4] = "WT", [14] = "CAT", [100] = "AP", [110] = "WS", [118] = "RC", [828] = "MOD", } local export = {} local function generate_shortcut(title, br_open, display, br_close, demo) local redlink = not title:getContent() local query = {} if redlink then query.action = "edit" query.redlink = true if not demo then query.preloadtext = "#REDIRECT [[" .. target .. "]]" end else query.redirect = "no" end local tag = html_create("code") :wikitext(br_open .. "[" .. tostring(title:fullUrl(query)) .. " ") if redlink then display = html_create("span") :addClass("redlink") :wikitext(display) end tag = tag:node(display) :wikitext("]".. br_close) if demo then return tag end local redirect = title.redirectTarget -- Check the target is correct. if redirect and redirect.fullText == target then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, true end local function handle_shortcut(title, demo) local namespace = title.namespace if namespace == 10 then -- The "Template:" prefix will still be needed in rare situations, so abbreviate it to "T:". return generate_shortcut(title, "{{", get_template_invocation_name(title):gsub("^Template:", "T:"), "}}", demo) end local prefix = namespace_abbreviations[namespace] or title.nsText local text = prefix ~= "" and (prefix .. ":" .. title.text) or title.text return generate_shortcut(title, "", text, "", demo) end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Shortcut boxes needing attention") end -- Don't categorise documentation subpages as having shortcuts. if not documentation then insert(categories, "Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export bjzf2xi9o0ftrnotrb1p1j01d2ddjp8 36196 36195 2024-12-18T16:11:34Z Theknightwho 1347 Load external functions on demand. 36196 Scribunto text/plain local export = {} local pages_module = "Module:pages" local parameters_module = "Module:parameters" local template_parser_module = "Module:template parser" local utilities_module = "Module:utilities" local html_create = mw.html.create local insert = table.insert local tostring = tostring --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function get_namespace_shortcut(...) get_namespace_shortcut = require(pages_module).get_namespace_shortcut return get_namespace_shortcut(...) end local function get_template_invocation_name(...) get_template_invocation_name = require(template_parser_module).getTemplateInvocationName return get_template_invocation_name(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local is_documentation local function get_is_documentation(current_title) is_documentation, get_is_documentation = require(pages_module).is_documentation(current_title or mw.title.getCurrentTitle()), nil return is_documentation end local target local function get_target() get_target = nil local current_title = mw.title.getCurrentTitle() target = current_title.prefixedText -- If it's a documentation page, make the target point to the main page. if is_documentation == nil and get_is_documentation(current_title) or is_documentation then target = target:sub(1, -15) return target end -- Otherwise, if it's a template or module, point to the page. local namespace = current_title.namespace if namespace == 10 or (namespace == 828 and current_title.contentModel == "Scribunto") then return target end -- Otherwise, point to the current section, or the page if at the top. local current_section = require(pages_module).get_current_section() if current_section == 0 then -- Section 0 is everything before the first heading. return target end local headings, i = {}, 0 for heading in require(template_parser_module).find_headings(current_title.content) do i = i + 1 headings[i] = heading -- Once the current section has been found, validate headings in reverse order until a valid one is found. if heading.section == current_section then break end end while i ~= 0 do local anchor = headings[i]:get_anchor() if anchor ~= nil then -- Generate the fragment. target = target .. "#" .. anchor:gsub("_", " ") return target end i = i - 1 end return target end local function handle_shortcut(title, demo) local namespace = title.namespace local text = namespace == 0 and title.text or namespace == 10 and get_template_invocation_name(title, "shortcut") or get_namespace_shortcut(title) .. ":" .. title.text local redlink, query = not title.content if redlink then query = { action = "edit", redlink = true, preloadtext = not demo and "#REDIRECT [[" .. (target or get_target()) .. "]]" or nil } else query = { redirect = "no", } end local tag = html_create("code"):wikitext((namespace == 10 and "{{[" or "[") .. tostring(title:fullUrl(query)) .. " ") if redlink then text = html_create("span") :addClass("redlink") :wikitext(text) end tag = tag:node(text):wikitext(namespace == 10 and "]}}" or "]") if demo then return tag end -- Check the target is correct. local redirect = title.redirectTarget if redirect and redirect.fullText == (target or get_target()) then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, true end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local attn for _, shortcut in ipairs(list) do div:tag("br") local shortcut, iattn = handle_shortcut(shortcut, demo) div:node(shortcut) attn = attn or iattn end local categories if not nocat then categories = {} if attn then insert(categories, "Shortcut boxes needing attention") end -- Don't categorise documentation subpages as having shortcuts. if not (is_documentation == nil and get_is_documentation() or is_documentation) then insert(categories, "Wiktionary pages with shortcuts") end categories = format_categories(categories, nil, "-", nil, true) end return tostring(div) .. (categories or "") end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export fjp8uxnsskn49h5v8axhcyfow5fgojd 36197 36196 2024-12-18T22:11:04Z Theknightwho 1347 Split [[Category:Shortcut boxes needing attention]] into [[Shortcut boxes with redlinks]] and [[Shortcut boxes linking to non-shortcuts or shortcuts to other pages]], and track uses of the nocat parameter. 36197 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local pages_module = "Module:pages" local parameters_module = "Module:parameters" local template_parser_module = "Module:template parser" local utilities_module = "Module:utilities" local html_create = mw.html.create local insert = table.insert local ipairs = ipairs local require = require local tostring = tostring --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function get_namespace_shortcut(...) get_namespace_shortcut = require(pages_module).get_namespace_shortcut return get_namespace_shortcut(...) end local function get_template_invocation_name(...) get_template_invocation_name = require(template_parser_module).getTemplateInvocationName return get_template_invocation_name(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function track(...) track = require(debug_track_module) return track(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local is_documentation local function get_is_documentation(current_title) is_documentation, get_is_documentation = require(pages_module).is_documentation(current_title or mw.title.getCurrentTitle()), nil return is_documentation end local target local function get_target() get_target = nil local current_title = mw.title.getCurrentTitle() -- If it's a documentation page, make the target point to the main page. if is_documentation == nil and get_is_documentation(current_title) or is_documentation then target = (current_title.rootPageTitle or current_title).fullText -- Fallback is a failsafe, but shouldn't be needed. return target end local namespace = current_title.namespace -- Unless the page is a template or module, point to the current section with a fragment. Otherwise, just point to the current page. if not (namespace == 10 or (namespace == 828 and current_title.contentModel == "Scribunto")) then local current_section = require(pages_module).get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading (i.e. the top of the page). local headings, i = {}, 0 for heading in require(template_parser_module).find_headings(current_title.content) do i = i + 1 headings[i] = heading if heading.section == current_section then break end end -- Once the current section has been found, validate headings in reverse order until a valid one is found. while i ~= 0 do local anchor = headings[i]:get_anchor() if anchor ~= nil then -- Add the fragment. current_title.fragment = anchor:gsub("_", " ") break end i = i - 1 end end end target = current_title.fullText return target end local function handle_shortcut(title, demo) local namespace = title.namespace local text = namespace == 0 and title.text or namespace == 10 and get_template_invocation_name(title, "shortcut") or get_namespace_shortcut(title) .. ":" .. title.text local redlink, query = not title.content if redlink then query = { action = "edit", redlink = true, preloadtext = not demo and "#REDIRECT [[" .. (target or get_target()) .. "]]" or nil } else query = { redirect = "no", } end local tag = html_create("code"):wikitext((namespace == 10 and "{{[" or "[") .. tostring(title:fullUrl(query)) .. " ") if redlink then text = html_create("span") :addClass("redlink") :wikitext(text) end tag = tag:node(text):wikitext(namespace == 10 and "]}}" or "]") if demo then return tag elseif redlink then tag:addClass("attentionseeking") return tag, "redlink" end -- Check the target is correct. local redirect = title.redirectTarget if redirect and redirect.fullText == (target or get_target()) then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, "not shortcut" end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) if nocat then track("shortcut box/nocat") end local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local redlink, not_shortcut for _, shortcut in ipairs(list) do div:tag("br") local shortcut, cat = handle_shortcut(shortcut, demo) div:node(shortcut) if cat == "redlink" then redlink = true elseif cat == "not shortcut" then not_shortcut = true end end if nocat then return tostring(div) end local categories = {} if not (is_documentation == nil and get_is_documentation() or is_documentation) then insert(categories, "Wiktionary pages with shortcuts") end if redlink then insert(categories, "Shortcut boxes with redlinks") end if not_shortcut then insert(categories, "Shortcut boxes linking to non-shortcuts or shortcuts to other pages") end return tostring(div) .. format_categories(categories, nil, "-", nil, true) end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, -- To be removed: no use-case. ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export og0ohiqi5fmsbp8sloycnsgeplrlocd 36198 36197 2024-12-18T22:28:15Z Theknightwho 1347 Don't categorise pages which uses hidden categories. 36198 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local maintenance_category_module = "Module:maintenance category" local pages_module = "Module:pages" local parameters_module = "Module:parameters" local template_parser_module = "Module:template parser" local utilities_module = "Module:utilities" local html_create = mw.html.create local insert = table.insert local ipairs = ipairs local require = require local tostring = tostring --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function get_namespace_shortcut(...) get_namespace_shortcut = require(pages_module).get_namespace_shortcut return get_namespace_shortcut(...) end local function get_template_invocation_name(...) get_template_invocation_name = require(template_parser_module).getTemplateInvocationName return get_template_invocation_name(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function track(...) track = require(debug_track_module) return track(...) end local function uses_hidden_category(...) uses_hidden_category = require(maintenance_category_module).uses_hidden_category return uses_hidden_category(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local current_title local function get_current_title() current_title, get_current_title = mw.title.getCurrentTitle(), nil return current_title end local is_documentation local function get_is_documentation() is_documentation, get_is_documentation = require(pages_module).is_documentation(current_title or get_current_title()), nil return is_documentation end local target local function get_target() get_target = nil -- If it's a documentation page, make the target point to the main page. if is_documentation == nil and get_is_documentation() or is_documentation then target = ((current_title or get_current_title()).rootPageTitle or current_title).fullText -- Fallback is a failsafe, but shouldn't be needed. return target end local namespace = (current_title or get_current_title()).namespace -- Unless the page is a template or module, point to the current section with a fragment. Otherwise, just point to the current page. if not (namespace == 10 or (namespace == 828 and current_title.contentModel == "Scribunto")) then local current_section = require(pages_module).get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading (i.e. the top of the page). local headings, i = {}, 0 for heading in require(template_parser_module).find_headings(current_title.content) do i = i + 1 headings[i] = heading if heading.section == current_section then break end end -- Once the current section has been found, validate headings in reverse order until a valid one is found. while i ~= 0 do local anchor = headings[i]:get_anchor() if anchor ~= nil then -- Add the fragment. current_title.fragment = anchor:gsub("_", " ") break end i = i - 1 end end end target = current_title.fullText return target end local function handle_shortcut(title, demo) local namespace = title.namespace local text = namespace == 0 and title.text or namespace == 10 and get_template_invocation_name(title, "shortcut") or get_namespace_shortcut(title) .. ":" .. title.text local redlink, query = not title.content if redlink then query = { action = "edit", redlink = true, preloadtext = not demo and "#REDIRECT [[" .. (target or get_target()) .. "]]" or nil } else query = { redirect = "no", } end local tag = html_create("code"):wikitext((namespace == 10 and "{{[" or "[") .. tostring(title:fullUrl(query)) .. " ") if redlink then text = html_create("span") :addClass("redlink") :wikitext(text) end tag = tag:node(text):wikitext(namespace == 10 and "]}}" or "]") if demo then return tag elseif redlink then tag:addClass("attentionseeking") return tag, "redlink" end -- Check the target is correct. local redirect = title.redirectTarget if redirect and redirect.fullText == (target or get_target()) then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, "not shortcut" end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) if nocat then track("shortcut box/nocat") end local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local redlink, not_shortcut for _, shortcut in ipairs(list) do div:tag("br") local shortcut, cat = handle_shortcut(shortcut, demo) div:node(shortcut) if cat == "redlink" then redlink = true elseif cat == "not shortcut" then not_shortcut = true end end if nocat or uses_hidden_category(current_title or get_current_title()) then return tostring(div) end local categories = {} -- Don't categorize documentation pages as being pages with shortcuts. if not (is_documentation == nil and get_is_documentation() or is_documentation) then insert(categories, "Wiktionary pages with shortcuts") end if redlink then insert(categories, "Shortcut boxes with redlinks") end if not_shortcut then insert(categories, "Shortcut boxes linking to non-shortcuts or shortcuts to other pages") end return tostring(div) .. format_categories(categories, nil, "-", nil, true) end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, -- To be removed: no use-case. ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export 93qn4ybvhhi6cffs8avj6dlohqxv7hh 36199 36198 2025-05-26T14:24:38Z Theknightwho 1347 36199 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local maintenance_category_module = "Module:maintenance category" local pages_module = "Module:pages" local parameters_module = "Module:parameters" local template_parser_module = "Module:template parser" local utilities_module = "Module:utilities" local html_create = mw.html.create local insert = table.insert local ipairs = ipairs local require = require local tostring = tostring --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function get_namespace_shortcut(...) get_namespace_shortcut = require(pages_module).get_namespace_shortcut return get_namespace_shortcut(...) end local function get_template_invocation_name(...) get_template_invocation_name = require(template_parser_module).getTemplateInvocationName return get_template_invocation_name(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function track(...) track = require(debug_track_module) return track(...) end local function uses_hidden_category(...) uses_hidden_category = require(maintenance_category_module).uses_hidden_category return uses_hidden_category(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local current_title local function get_current_title() current_title, get_current_title = mw.title.getCurrentTitle(), nil return current_title end local is_documentation local function get_is_documentation() is_documentation, get_is_documentation = require(pages_module).is_documentation(current_title or get_current_title()), nil return is_documentation end local target local function get_target() get_target = nil -- If it's a documentation page, make the target point to the root page. if is_documentation == nil and get_is_documentation() or is_documentation then target = ((current_title or get_current_title()).rootPageTitle or current_title).fullText -- Fallback is a failsafe, but shouldn't be needed. return target end local namespace = (current_title or get_current_title()).namespace -- Unless the page is a template or module, point to the current section with a fragment. Otherwise, just point to the current page. if not (namespace == 10 or (namespace == 828 and current_title.contentModel == "Scribunto")) then local current_section = require(pages_module).get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading (i.e. the top of the page). local headings, i = {}, 0 for heading in require(template_parser_module).find_headings(current_title.content) do i = i + 1 headings[i] = heading if heading.section == current_section then break end end -- Once the current section has been found, validate headings in reverse order until a valid one is found. while i ~= 0 do local anchor = headings[i]:get_anchor() if anchor ~= nil then -- Add the fragment. current_title.fragment = anchor:gsub("_", " ") break end i = i - 1 end end end target = current_title.fullText return target end local function handle_shortcut(title, demo) local namespace = title.namespace local text = namespace == 0 and title.text or namespace == 10 and get_template_invocation_name(title, "shortcut") or get_namespace_shortcut(title) .. ":" .. title.text local redlink, query = not title.content if redlink then query = { action = "edit", redlink = true, preloadtext = not demo and "#REDIRECT [[" .. (target or get_target()) .. "]]" or nil } else query = { redirect = "no", } end local tag = html_create("code"):wikitext((namespace == 10 and "{{[" or "[") .. tostring(title:fullUrl(query)) .. " ") if redlink then text = html_create("span") :addClass("redlink") :wikitext(text) end tag = tag:node(text):wikitext(namespace == 10 and "]}}" or "]") if demo then return tag elseif redlink then tag:addClass("attentionseeking") return tag, "redlink" end -- Check the target is correct. local redirect = title.redirectTarget if redirect and redirect.fullText == (target or get_target()) then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, "not shortcut" end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) if nocat then track("shortcut box/nocat") end local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local redlink, not_shortcut for _, shortcut in ipairs(list) do div:tag("br") local shortcut, cat = handle_shortcut(shortcut, demo) div:node(shortcut) if cat == "redlink" then redlink = true elseif cat == "not shortcut" then not_shortcut = true end end if nocat or uses_hidden_category(current_title or get_current_title()) then return tostring(div) end local categories = {} -- Don't categorize documentation pages as being pages with shortcuts. if not (is_documentation == nil and get_is_documentation() or is_documentation) then insert(categories, "Wiktionary pages with shortcuts") end if redlink then insert(categories, "Shortcut boxes with redlinks") end if not_shortcut then insert(categories, "Shortcut boxes linking to non-shortcuts or shortcuts to other pages") end return tostring(div) .. format_categories(categories, nil, "-", nil, true) end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, -- To be removed: no use-case. ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export f74hg0dzr1y9ufg9x40ezpv9t8cb1rt 36200 36199 2025-05-26T15:44:18Z Theknightwho 1347 36200 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local maintenance_category_module = "Module:maintenance category" local pages_module = "Module:pages" local parameters_module = "Module:parameters" local template_parser_module = "Module:template parser" local utilities_module = "Module:utilities" local html_create = mw.html.create local insert = table.insert local ipairs = ipairs local require = require local tostring = tostring --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function get_namespace_shortcut(...) get_namespace_shortcut = require(pages_module).get_namespace_shortcut return get_namespace_shortcut(...) end local function get_template_invocation_name(...) get_template_invocation_name = require(template_parser_module).getTemplateInvocationName return get_template_invocation_name(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function track(...) track = require(debug_track_module) return track(...) end local function uses_hidden_category(...) uses_hidden_category = require(maintenance_category_module).uses_hidden_category return uses_hidden_category(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local current_title local function get_current_title() current_title, get_current_title = mw.title.getCurrentTitle(), nil return current_title end local is_documentation local function get_is_documentation() is_documentation, get_is_documentation = require(pages_module).is_documentation(current_title or get_current_title()), nil return is_documentation end local target local function get_target() get_target = nil -- If it's a documentation page, make the target point to the base page. if is_documentation == nil and get_is_documentation() or is_documentation then target = ((current_title or get_current_title()).basePageTitle or current_title).fullText -- Fallback is a failsafe, but shouldn't be needed. return target end local namespace = (current_title or get_current_title()).namespace -- Unless the page is a template or module, point to the current section with a fragment. Otherwise, just point to the current page. if not (namespace == 10 or (namespace == 828 and current_title.contentModel == "Scribunto")) then local current_section = require(pages_module).get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading (i.e. the top of the page). local headings, i = {}, 0 for heading in require(template_parser_module).find_headings(current_title.content) do i = i + 1 headings[i] = heading if heading.section == current_section then break end end -- Once the current section has been found, validate headings in reverse order until a valid one is found. while i ~= 0 do local anchor = headings[i]:get_anchor() if anchor ~= nil then -- Add the fragment. current_title.fragment = anchor:gsub("_", " ") break end i = i - 1 end end end target = current_title.fullText return target end local function handle_shortcut(title, demo) local namespace = title.namespace local text = namespace == 0 and title.text or namespace == 10 and get_template_invocation_name(title, "shortcut") or get_namespace_shortcut(title) .. ":" .. title.text local redlink, query = not title.content if redlink then query = { action = "edit", redlink = true, preloadtext = not demo and "#REDIRECT [[" .. (target or get_target()) .. "]]" or nil } else query = { redirect = "no", } end local tag = html_create("code"):wikitext((namespace == 10 and "{{[" or "[") .. tostring(title:fullUrl(query)) .. " ") if redlink then text = html_create("span") :addClass("redlink") :wikitext(text) end tag = tag:node(text):wikitext(namespace == 10 and "]}}" or "]") if demo then return tag elseif redlink then tag:addClass("attentionseeking") return tag, "redlink" end -- Check the target is correct. local redirect = title.redirectTarget if redirect and redirect.fullText == (target or get_target()) then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, "not shortcut" end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) if nocat then track("shortcut box/nocat") end local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local redlink, not_shortcut for _, shortcut in ipairs(list) do div:tag("br") local shortcut, cat = handle_shortcut(shortcut, demo) div:node(shortcut) if cat == "redlink" then redlink = true elseif cat == "not shortcut" then not_shortcut = true end end if nocat or uses_hidden_category(current_title or get_current_title()) then return tostring(div) end local categories = {} -- Don't categorize documentation pages as being pages with shortcuts. if not (is_documentation == nil and get_is_documentation() or is_documentation) then insert(categories, "Wiktionary pages with shortcuts") end if redlink then insert(categories, "Shortcut boxes with redlinks") end if not_shortcut then insert(categories, "Shortcut boxes linking to non-shortcuts or shortcuts to other pages") end return tostring(div) .. format_categories(categories, nil, "-", nil, true) end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { [1] = {required = true, type = "title", list = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, -- To be removed: no use-case. ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export bpvdmkfg6vu7wvap6hz4odmle0iwgaw 36201 36200 2025-06-17T23:07:25Z Benwing2 1346 default to Template namespace and allow comma-separated shortcuts 36201 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local maintenance_category_module = "Module:maintenance category" local pages_module = "Module:pages" local parameters_module = "Module:parameters" local template_parser_module = "Module:template parser" local utilities_module = "Module:utilities" local html_create = mw.html.create local insert = table.insert local ipairs = ipairs local require = require local tostring = tostring --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function get_namespace_shortcut(...) get_namespace_shortcut = require(pages_module).get_namespace_shortcut return get_namespace_shortcut(...) end local function get_template_invocation_name(...) get_template_invocation_name = require(template_parser_module).getTemplateInvocationName return get_template_invocation_name(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function track(...) track = require(debug_track_module) return track(...) end local function uses_hidden_category(...) uses_hidden_category = require(maintenance_category_module).uses_hidden_category return uses_hidden_category(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local current_title local function get_current_title() current_title, get_current_title = mw.title.getCurrentTitle(), nil return current_title end local is_documentation local function get_is_documentation() is_documentation, get_is_documentation = require(pages_module).is_documentation(current_title or get_current_title()), nil return is_documentation end local target local function get_target() get_target = nil -- If it's a documentation page, make the target point to the base page. if is_documentation == nil and get_is_documentation() or is_documentation then target = ((current_title or get_current_title()).basePageTitle or current_title).fullText -- Fallback is a failsafe, but shouldn't be needed. return target end local namespace = (current_title or get_current_title()).namespace -- Unless the page is a template or module, point to the current section with a fragment. Otherwise, just point to the current page. if not (namespace == 10 or (namespace == 828 and current_title.contentModel == "Scribunto")) then local current_section = require(pages_module).get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading (i.e. the top of the page). local headings, i = {}, 0 for heading in require(template_parser_module).find_headings(current_title.content) do i = i + 1 headings[i] = heading if heading.section == current_section then break end end -- Once the current section has been found, validate headings in reverse order until a valid one is found. while i ~= 0 do local anchor = headings[i]:get_anchor() if anchor ~= nil then -- Add the fragment. current_title.fragment = anchor:gsub("_", " ") break end i = i - 1 end end end target = current_title.fullText return target end local function handle_shortcut(title, demo) local namespace = title.namespace local text = namespace == 0 and title.text or namespace == 10 and get_template_invocation_name(title, "shortcut") or get_namespace_shortcut(title) .. ":" .. title.text local redlink, query = not title.content if redlink then query = { action = "edit", redlink = true, preloadtext = not demo and "#REDIRECT [[" .. (target or get_target()) .. "]]" or nil } else query = { redirect = "no", } end local tag = html_create("code"):wikitext((namespace == 10 and "{{[" or "[") .. tostring(title:fullUrl(query)) .. " ") if redlink then text = html_create("span") :addClass("redlink") :wikitext(text) end tag = tag:node(text):wikitext(namespace == 10 and "]}}" or "]") if demo then return tag elseif redlink then tag:addClass("attentionseeking") return tag, "redlink" end -- Check the target is correct. local redirect = title.redirectTarget if redirect and redirect.fullText == (target or get_target()) then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, "not shortcut" end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) if nocat then track("shortcut box/nocat") end local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local redlink, not_shortcut for _, shortcut in ipairs(list) do div:tag("br") local shortcut, cat = handle_shortcut(shortcut, demo) div:node(shortcut) if cat == "redlink" then redlink = true elseif cat == "not shortcut" then not_shortcut = true end end if nocat or uses_hidden_category(current_title or get_current_title()) then return tostring(div) end local categories = {} -- Don't categorize documentation pages as being pages with shortcuts. if not (is_documentation == nil and get_is_documentation() or is_documentation) then insert(categories, "Wiktionary pages with shortcuts") end if redlink then insert(categories, "Shortcut boxes with redlinks") end if not_shortcut then insert(categories, "Shortcut boxes linking to non-shortcuts or shortcuts to other pages") end return tostring(div) .. format_categories(categories, nil, "-", nil, true) end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { -- Namespace 10 is Template. [1] = {required = true, type = "title", namespace = 10, list = true, sublist = "comma without whitespace", flatten = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, -- To be removed: no use-case. ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export 1uqyzbk9bvybtow1qhfbdq8barmw98t 36202 36201 2025-08-11T14:56:19Z J3133 1340 36202 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local maintenance_category_module = "Module:maintenance category" local pages_module = "Module:pages" local parameters_module = "Module:parameters" local template_parser_module = "Module:template parser" local utilities_module = "Module:utilities" local html_create = mw.html.create local insert = table.insert local ipairs = ipairs local require = require local tostring = tostring --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function get_namespace_shortcut(...) get_namespace_shortcut = require(pages_module).get_namespace_shortcut return get_namespace_shortcut(...) end local function get_template_invocation_name(...) get_template_invocation_name = require(template_parser_module).getTemplateInvocationName return get_template_invocation_name(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function track(...) track = require(debug_track_module) return track(...) end local function uses_hidden_category(...) uses_hidden_category = require(maintenance_category_module).uses_hidden_category return uses_hidden_category(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local current_title local function get_current_title() current_title, get_current_title = mw.title.getCurrentTitle(), nil return current_title end local is_documentation local function get_is_documentation() is_documentation, get_is_documentation = require(pages_module).is_documentation(current_title or get_current_title()), nil return is_documentation end local target local function get_target() get_target = nil -- If it's a documentation page, make the target point to the base page. if is_documentation == nil and get_is_documentation() or is_documentation then target = ((current_title or get_current_title()).basePageTitle or current_title).fullText -- Fallback is a failsafe, but shouldn't be needed. return target end local namespace = (current_title or get_current_title()).namespace -- Unless the page is a template or module, point to the current section with a fragment. Otherwise, just point to the current page. if not (namespace == 10 or (namespace == 828 and current_title.contentModel == "Scribunto")) then local current_section = require(pages_module).get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading (i.e. the top of the page). local headings, i = {}, 0 for heading in require(template_parser_module).find_headings(current_title.content) do i = i + 1 headings[i] = heading if heading.section == current_section then break end end -- Once the current section has been found, validate headings in reverse order until a valid one is found. while i ~= 0 do local anchor = headings[i]:get_anchor() if anchor ~= nil then -- Add the fragment. current_title.fragment = anchor:gsub("_", " ") break end i = i - 1 end end end target = current_title.fullText return target end local function handle_shortcut(title, demo) local namespace = title.namespace local text = namespace == 0 and title.text or namespace == 10 and get_template_invocation_name(title, "shortcut") or get_namespace_shortcut(title) .. ":" .. title.text local redlink, query = not title.content if redlink then query = { action = "edit", redlink = true, preloadtext = not demo and "#REDIRECT [[" .. (target or get_target()) .. "]]" or nil } else query = { redirect = "no", } end local tag = html_create("code"):wikitext((namespace == 10 and "{{[" or "[") .. tostring(title:fullUrl(query)) .. " ") if redlink then text = html_create("span") :addClass("redlink") :wikitext(text) end tag = tag:node(text):wikitext(namespace == 10 and "]}}" or "]") if demo then return tag elseif redlink then tag:addClass("attentionseeking") return tag, "redlink" end -- Check the target is correct. local redirect = title.redirectTarget if redirect and redirect.fullText == (target or get_target()) then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, "not shortcut" end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, alt_list, temp, nocat, demo) if nocat then track("shortcut box/nocat") end local alt_names = {} local shortcuts = {} for i, name in ipairs(list) do if alt_list[i] then table.insert(alt_names, name) else table.insert(shortcuts, name) end end local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") local redlink, not_shortcut function add(list) for _, shortcut in ipairs(list) do div:tag("br") local shortcut, cat = handle_shortcut(shortcut, demo) div:node(shortcut) if cat == "redlink" then redlink = true elseif cat == "not shortcut" then not_shortcut = true end end end if #alt_names > 0 then div:wikitext(("%s%slternative name%s:"):format( temp and "Temporary " or "", temp and "a" or "A", #alt_names > 1 and "s" or "" )) add(alt_names) if #shortcuts > 0 then div:tag("br") end end if #shortcuts > 0 then div:tag("span"):wikitext(("%s[[Wiktionary:Shortcuts|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", #shortcuts > 1 and "s" or "" )) add(shortcuts) end if nocat or uses_hidden_category(current_title or get_current_title()) then return tostring(div) end local categories = {} -- Don't categorize documentation pages as being pages with shortcuts. if not (is_documentation == nil and get_is_documentation() or is_documentation) then insert(categories, "Wiktionary pages with shortcuts") end if redlink then insert(categories, "Shortcut boxes with redlinks") end if not_shortcut then insert(categories, "Shortcut boxes linking to non-shortcuts or shortcuts to other pages") end return tostring(div) .. format_categories(categories, nil, "-", nil, true) end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { -- Namespace 10 is Template. [1] = {required = true, type = "title", namespace = 10, list = true, sublist = "comma without whitespace", flatten = true}, ["alt1"] = boolean, ["alt2"] = boolean, ["alt3"] = boolean, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, -- To be removed: no use-case. ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], {args.alt1, args.alt2, args.alt3}, args.temp, args.nocat, args.demo) end return export t2ss3d67yig3e752aoy4f5hjg8sygq3 36203 36202 2025-08-11T15:03:13Z J3133 1340 36203 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local maintenance_category_module = "Module:maintenance category" local pages_module = "Module:pages" local parameters_module = "Module:parameters" local template_parser_module = "Module:template parser" local utilities_module = "Module:utilities" local html_create = mw.html.create local insert = table.insert local ipairs = ipairs local require = require local tostring = tostring --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function get_namespace_shortcut(...) get_namespace_shortcut = require(pages_module).get_namespace_shortcut return get_namespace_shortcut(...) end local function get_template_invocation_name(...) get_template_invocation_name = require(template_parser_module).getTemplateInvocationName return get_template_invocation_name(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function track(...) track = require(debug_track_module) return track(...) end local function uses_hidden_category(...) uses_hidden_category = require(maintenance_category_module).uses_hidden_category return uses_hidden_category(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local current_title local function get_current_title() current_title, get_current_title = mw.title.getCurrentTitle(), nil return current_title end local is_documentation local function get_is_documentation() is_documentation, get_is_documentation = require(pages_module).is_documentation(current_title or get_current_title()), nil return is_documentation end local target local function get_target() get_target = nil -- If it's a documentation page, make the target point to the base page. if is_documentation == nil and get_is_documentation() or is_documentation then target = ((current_title or get_current_title()).basePageTitle or current_title).fullText -- Fallback is a failsafe, but shouldn't be needed. return target end local namespace = (current_title or get_current_title()).namespace -- Unless the page is a template or module, point to the current section with a fragment. Otherwise, just point to the current page. if not (namespace == 10 or (namespace == 828 and current_title.contentModel == "Scribunto")) then local current_section = require(pages_module).get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading (i.e. the top of the page). local headings, i = {}, 0 for heading in require(template_parser_module).find_headings(current_title.content) do i = i + 1 headings[i] = heading if heading.section == current_section then break end end -- Once the current section has been found, validate headings in reverse order until a valid one is found. while i ~= 0 do local anchor = headings[i]:get_anchor() if anchor ~= nil then -- Add the fragment. current_title.fragment = anchor:gsub("_", " ") break end i = i - 1 end end end target = current_title.fullText return target end local function handle_shortcut(title, demo) local namespace = title.namespace local text = namespace == 0 and title.text or namespace == 10 and get_template_invocation_name(title, "shortcut") or get_namespace_shortcut(title) .. ":" .. title.text local redlink, query = not title.content if redlink then query = { action = "edit", redlink = true, preloadtext = not demo and "#REDIRECT [[" .. (target or get_target()) .. "]]" or nil } else query = { redirect = "no", } end local tag = html_create("code"):wikitext((namespace == 10 and "{{[" or "[") .. tostring(title:fullUrl(query)) .. " ") if redlink then text = html_create("span") :addClass("redlink") :wikitext(text) end tag = tag:node(text):wikitext(namespace == 10 and "]}}" or "]") if demo then return tag elseif redlink then tag:addClass("attentionseeking") return tag, "redlink" end -- Check the target is correct. local redirect = title.redirectTarget if redirect and redirect.fullText == (target or get_target()) then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, "not shortcut" end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, alt_list, temp, nocat, demo) if nocat then track("shortcut box/nocat") end local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") local redlink, not_shortcut function add(list) for _, shortcut in ipairs(list) do div:tag("br") local shortcut, cat = handle_shortcut(shortcut, demo) div:node(shortcut) if cat == "redlink" then redlink = true elseif cat == "not shortcut" then not_shortcut = true end end end if #alt_list > 0 then div:wikitext(("%s%slternative name%s:"):format( temp and "Temporary " or "", temp and "a" or "A", #alt_list > 1 and "s" or "" )) add(alt_list) if #list > 0 then div:tag("br") end end if #list > 0 then div:tag("span"):wikitext(("%s[[Wiktionary:Shortcuts|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) add(list) end if nocat or uses_hidden_category(current_title or get_current_title()) then return tostring(div) end local categories = {} -- Don't categorize documentation pages as being pages with shortcuts. if not (is_documentation == nil and get_is_documentation() or is_documentation) then insert(categories, "Wiktionary pages with shortcuts") end if redlink then insert(categories, "Shortcut boxes with redlinks") end if not_shortcut then insert(categories, "Shortcut boxes linking to non-shortcuts or shortcuts to other pages") end return tostring(div) .. format_categories(categories, nil, "-", nil, true) end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { -- Namespace 10 is Template. [1] = {required = true, type = "title", namespace = 10, list = true, sublist = "comma without whitespace", flatten = true}, ["alt"] = {type = "title", namespace = 10, list = true, sublist = "comma without whitespace", flatten = true}, ["alt1"] = {type = "title", namespace = 10}, ["alt2"] = {type = "title", namespace = 10}, ["alt3"] = {type = "title", namespace = 10}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, -- To be removed: no use-case. ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], {args.alt, args.alt1, args.alt2, args.alt3}, args.temp, args.nocat, args.demo) end return export 5cfwpb2w0sfryu7bjbz06e5xsjroxt3 36204 36203 2025-08-11T15:03:56Z J3133 1340 36204 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local maintenance_category_module = "Module:maintenance category" local pages_module = "Module:pages" local parameters_module = "Module:parameters" local template_parser_module = "Module:template parser" local utilities_module = "Module:utilities" local html_create = mw.html.create local insert = table.insert local ipairs = ipairs local require = require local tostring = tostring --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function get_namespace_shortcut(...) get_namespace_shortcut = require(pages_module).get_namespace_shortcut return get_namespace_shortcut(...) end local function get_template_invocation_name(...) get_template_invocation_name = require(template_parser_module).getTemplateInvocationName return get_template_invocation_name(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function track(...) track = require(debug_track_module) return track(...) end local function uses_hidden_category(...) uses_hidden_category = require(maintenance_category_module).uses_hidden_category return uses_hidden_category(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local current_title local function get_current_title() current_title, get_current_title = mw.title.getCurrentTitle(), nil return current_title end local is_documentation local function get_is_documentation() is_documentation, get_is_documentation = require(pages_module).is_documentation(current_title or get_current_title()), nil return is_documentation end local target local function get_target() get_target = nil -- If it's a documentation page, make the target point to the base page. if is_documentation == nil and get_is_documentation() or is_documentation then target = ((current_title or get_current_title()).basePageTitle or current_title).fullText -- Fallback is a failsafe, but shouldn't be needed. return target end local namespace = (current_title or get_current_title()).namespace -- Unless the page is a template or module, point to the current section with a fragment. Otherwise, just point to the current page. if not (namespace == 10 or (namespace == 828 and current_title.contentModel == "Scribunto")) then local current_section = require(pages_module).get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading (i.e. the top of the page). local headings, i = {}, 0 for heading in require(template_parser_module).find_headings(current_title.content) do i = i + 1 headings[i] = heading if heading.section == current_section then break end end -- Once the current section has been found, validate headings in reverse order until a valid one is found. while i ~= 0 do local anchor = headings[i]:get_anchor() if anchor ~= nil then -- Add the fragment. current_title.fragment = anchor:gsub("_", " ") break end i = i - 1 end end end target = current_title.fullText return target end local function handle_shortcut(title, demo) local namespace = title.namespace local text = namespace == 0 and title.text or namespace == 10 and get_template_invocation_name(title, "shortcut") or get_namespace_shortcut(title) .. ":" .. title.text local redlink, query = not title.content if redlink then query = { action = "edit", redlink = true, preloadtext = not demo and "#REDIRECT [[" .. (target or get_target()) .. "]]" or nil } else query = { redirect = "no", } end local tag = html_create("code"):wikitext((namespace == 10 and "{{[" or "[") .. tostring(title:fullUrl(query)) .. " ") if redlink then text = html_create("span") :addClass("redlink") :wikitext(text) end tag = tag:node(text):wikitext(namespace == 10 and "]}}" or "]") if demo then return tag elseif redlink then tag:addClass("attentionseeking") return tag, "redlink" end -- Check the target is correct. local redirect = title.redirectTarget if redirect and redirect.fullText == (target or get_target()) then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, "not shortcut" end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, alt_list, temp, nocat, demo) if nocat then track("shortcut box/nocat") end local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") local redlink, not_shortcut function add(list) for _, shortcut in ipairs(list) do div:tag("br") local shortcut, cat = handle_shortcut(shortcut, demo) div:node(shortcut) if cat == "redlink" then redlink = true elseif cat == "not shortcut" then not_shortcut = true end end end if #alt_list > 0 then div:wikitext(("%s%slternative name%s:"):format( temp and "Temporary " or "", temp and "a" or "A", #alt_list > 1 and "s" or "" )) add(alt_list) if #list > 0 then div:tag("br") end end if #list > 0 then div:tag("span"):wikitext(("%s[[Wiktionary:Shortcuts|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) add(list) end if nocat or uses_hidden_category(current_title or get_current_title()) then return tostring(div) end local categories = {} -- Don't categorize documentation pages as being pages with shortcuts. if not (is_documentation == nil and get_is_documentation() or is_documentation) then insert(categories, "Wiktionary pages with shortcuts") end if redlink then insert(categories, "Shortcut boxes with redlinks") end if not_shortcut then insert(categories, "Shortcut boxes linking to non-shortcuts or shortcuts to other pages") end return tostring(div) .. format_categories(categories, nil, "-", nil, true) end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { -- Namespace 10 is Template. [1] = {required = true, type = "title", namespace = 10, list = true, sublist = "comma without whitespace", flatten = true}, ["alt"] = {type = "title", namespace = 10}, ["alt1"] = {type = "title", namespace = 10}, ["alt2"] = {type = "title", namespace = 10}, ["alt3"] = {type = "title", namespace = 10}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, -- To be removed: no use-case. ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], {args.alt, args.alt1, args.alt2, args.alt3}, args.temp, args.nocat, args.demo) end return export d8hw79yn9b6rrswuargm3rti6cnr7xv 36205 36204 2025-08-11T15:05:26Z J3133 1340 36205 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local maintenance_category_module = "Module:maintenance category" local pages_module = "Module:pages" local parameters_module = "Module:parameters" local template_parser_module = "Module:template parser" local utilities_module = "Module:utilities" local html_create = mw.html.create local insert = table.insert local ipairs = ipairs local require = require local tostring = tostring --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function get_namespace_shortcut(...) get_namespace_shortcut = require(pages_module).get_namespace_shortcut return get_namespace_shortcut(...) end local function get_template_invocation_name(...) get_template_invocation_name = require(template_parser_module).getTemplateInvocationName return get_template_invocation_name(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function track(...) track = require(debug_track_module) return track(...) end local function uses_hidden_category(...) uses_hidden_category = require(maintenance_category_module).uses_hidden_category return uses_hidden_category(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local current_title local function get_current_title() current_title, get_current_title = mw.title.getCurrentTitle(), nil return current_title end local is_documentation local function get_is_documentation() is_documentation, get_is_documentation = require(pages_module).is_documentation(current_title or get_current_title()), nil return is_documentation end local target local function get_target() get_target = nil -- If it's a documentation page, make the target point to the base page. if is_documentation == nil and get_is_documentation() or is_documentation then target = ((current_title or get_current_title()).basePageTitle or current_title).fullText -- Fallback is a failsafe, but shouldn't be needed. return target end local namespace = (current_title or get_current_title()).namespace -- Unless the page is a template or module, point to the current section with a fragment. Otherwise, just point to the current page. if not (namespace == 10 or (namespace == 828 and current_title.contentModel == "Scribunto")) then local current_section = require(pages_module).get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading (i.e. the top of the page). local headings, i = {}, 0 for heading in require(template_parser_module).find_headings(current_title.content) do i = i + 1 headings[i] = heading if heading.section == current_section then break end end -- Once the current section has been found, validate headings in reverse order until a valid one is found. while i ~= 0 do local anchor = headings[i]:get_anchor() if anchor ~= nil then -- Add the fragment. current_title.fragment = anchor:gsub("_", " ") break end i = i - 1 end end end target = current_title.fullText return target end local function handle_shortcut(title, demo) local namespace = title.namespace local text = namespace == 0 and title.text or namespace == 10 and get_template_invocation_name(title, "shortcut") or get_namespace_shortcut(title) .. ":" .. title.text local redlink, query = not title.content if redlink then query = { action = "edit", redlink = true, preloadtext = not demo and "#REDIRECT [[" .. (target or get_target()) .. "]]" or nil } else query = { redirect = "no", } end local tag = html_create("code"):wikitext((namespace == 10 and "{{[" or "[") .. tostring(title:fullUrl(query)) .. " ") if redlink then text = html_create("span") :addClass("redlink") :wikitext(text) end tag = tag:node(text):wikitext(namespace == 10 and "]}}" or "]") if demo then return tag elseif redlink then tag:addClass("attentionseeking") return tag, "redlink" end -- Check the target is correct. local redirect = title.redirectTarget if redirect and redirect.fullText == (target or get_target()) then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, "not shortcut" end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, alt_list, temp, nocat, demo) if nocat then track("shortcut box/nocat") end local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") local redlink, not_shortcut function add(list) for _, shortcut in ipairs(list) do div:tag("br") local shortcut, cat = handle_shortcut(shortcut, demo) div:node(shortcut) if cat == "redlink" then redlink = true elseif cat == "not shortcut" then not_shortcut = true end end end if #alt_list > 0 then div:wikitext(("%s%slternative name%s:"):format( temp and "Temporary " or "", temp and "a" or "A", #alt_list > 1 and "s" or "" )) add(alt_list) if #list > 0 then div:tag("hr") end end if #list > 0 then div:tag("span"):wikitext(("%s[[Wiktionary:Shortcuts|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) add(list) end if nocat or uses_hidden_category(current_title or get_current_title()) then return tostring(div) end local categories = {} -- Don't categorize documentation pages as being pages with shortcuts. if not (is_documentation == nil and get_is_documentation() or is_documentation) then insert(categories, "Wiktionary pages with shortcuts") end if redlink then insert(categories, "Shortcut boxes with redlinks") end if not_shortcut then insert(categories, "Shortcut boxes linking to non-shortcuts or shortcuts to other pages") end return tostring(div) .. format_categories(categories, nil, "-", nil, true) end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { -- Namespace 10 is Template. [1] = {required = true, type = "title", namespace = 10, list = true, sublist = "comma without whitespace", flatten = true}, ["alt"] = {type = "title", namespace = 10}, ["alt1"] = {type = "title", namespace = 10}, ["alt2"] = {type = "title", namespace = 10}, ["alt3"] = {type = "title", namespace = 10}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, -- To be removed: no use-case. ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], {args.alt, args.alt1, args.alt2, args.alt3}, args.temp, args.nocat, args.demo) end return export huk4cd5nkxqqienojm4p5csa3nyit83 36206 36205 2025-08-11T16:45:54Z J3133 1340 36206 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local maintenance_category_module = "Module:maintenance category" local pages_module = "Module:pages" local parameters_module = "Module:parameters" local template_parser_module = "Module:template parser" local utilities_module = "Module:utilities" local html_create = mw.html.create local insert = table.insert local ipairs = ipairs local require = require local tostring = tostring --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function get_namespace_shortcut(...) get_namespace_shortcut = require(pages_module).get_namespace_shortcut return get_namespace_shortcut(...) end local function get_template_invocation_name(...) get_template_invocation_name = require(template_parser_module).getTemplateInvocationName return get_template_invocation_name(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function track(...) track = require(debug_track_module) return track(...) end local function uses_hidden_category(...) uses_hidden_category = require(maintenance_category_module).uses_hidden_category return uses_hidden_category(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local current_title local function get_current_title() current_title, get_current_title = mw.title.getCurrentTitle(), nil return current_title end local is_documentation local function get_is_documentation() is_documentation, get_is_documentation = require(pages_module).is_documentation(current_title or get_current_title()), nil return is_documentation end local target local function get_target() get_target = nil -- If it's a documentation page, make the target point to the base page. if is_documentation == nil and get_is_documentation() or is_documentation then target = ((current_title or get_current_title()).basePageTitle or current_title).fullText -- Fallback is a failsafe, but shouldn't be needed. return target end local namespace = (current_title or get_current_title()).namespace -- Unless the page is a template or module, point to the current section with a fragment. Otherwise, just point to the current page. if not (namespace == 10 or (namespace == 828 and current_title.contentModel == "Scribunto")) then local current_section = require(pages_module).get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading (i.e. the top of the page). local headings, i = {}, 0 for heading in require(template_parser_module).find_headings(current_title.content) do i = i + 1 headings[i] = heading if heading.section == current_section then break end end -- Once the current section has been found, validate headings in reverse order until a valid one is found. while i ~= 0 do local anchor = headings[i]:get_anchor() if anchor ~= nil then -- Add the fragment. current_title.fragment = anchor:gsub("_", " ") break end i = i - 1 end end end target = current_title.fullText return target end local function handle_shortcut(title, demo) local namespace = title.namespace local text = namespace == 0 and title.text or namespace == 10 and get_template_invocation_name(title, "shortcut") or get_namespace_shortcut(title) .. ":" .. title.text local redlink, query = not title.content if redlink then query = { action = "edit", redlink = true, preloadtext = not demo and "#REDIRECT [[" .. (target or get_target()) .. "]]" or nil } else query = { redirect = "no", } end local tag = html_create("code"):wikitext((namespace == 10 and "{{[" or "[") .. tostring(title:fullUrl(query)) .. " ") if redlink then text = html_create("span") :addClass("redlink") :wikitext(text) end tag = tag:node(text):wikitext(namespace == 10 and "]}}" or "]") if demo then return tag elseif redlink then tag:addClass("attentionseeking") return tag, "redlink" end -- Check the target is correct. local redirect = title.redirectTarget if redirect and redirect.fullText == (target or get_target()) then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, "not shortcut" end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, alt_list, temp, nocat, demo) if nocat then track("shortcut box/nocat") end local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") local redlink, not_shortcut function add(list) for _, shortcut in ipairs(list) do div:tag("br") local shortcut, cat = handle_shortcut(shortcut, demo) div:node(shortcut) if cat == "redlink" then redlink = true elseif cat == "not shortcut" then not_shortcut = true end end end if #alt_list > 0 then div:wikitext(("%s%slternative name%s:"):format( temp and "Temporary " or "", temp and "a" or "A", #alt_list > 1 and "s" or "" )) add(alt_list) if #list > 0 then div:tag("hr") end end if #list > 0 then div:tag("span"):wikitext(("%s[[Wiktionary:Shortcuts|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) add(list) end if nocat or uses_hidden_category(current_title or get_current_title()) then return tostring(div) end local categories = {} -- Don't categorize documentation pages as being pages with shortcuts. if not (is_documentation == nil and get_is_documentation() or is_documentation) then insert(categories, "Wiktionary pages with shortcuts") end if redlink then insert(categories, "Shortcut boxes with redlinks") end if not_shortcut then insert(categories, "Shortcut boxes linking to non-shortcuts or shortcuts to other pages") end return tostring(div) .. format_categories(categories, nil, "-", nil, true) end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { -- Namespace 10 is Template. [1] = {type = "title", namespace = 10, list = true, sublist = "comma without whitespace", flatten = true}, ["alt"] = {type = "title", namespace = 10}, ["alt1"] = {type = "title", namespace = 10}, ["alt2"] = {type = "title", namespace = 10}, ["alt3"] = {type = "title", namespace = 10}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, -- To be removed: no use-case. ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) if (#args[1] == 0) and not (args.alt or args.alt1 or args.alt2 or args.alt3) then error("No shortcuts or alternative names were specified.") end return export.format_shortcuts(args[1], {args.alt, args.alt1, args.alt2, args.alt3}, args.temp, args.nocat, args.demo) end return export 6h08al1ol2n4bl6ahd4dultfcuihyi0 36207 36206 2025-08-11T16:55:25Z J3133 1340 36207 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local maintenance_category_module = "Module:maintenance category" local pages_module = "Module:pages" local parameters_module = "Module:parameters" local template_parser_module = "Module:template parser" local utilities_module = "Module:utilities" local html_create = mw.html.create local insert = table.insert local ipairs = ipairs local require = require local tostring = tostring --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function get_namespace_shortcut(...) get_namespace_shortcut = require(pages_module).get_namespace_shortcut return get_namespace_shortcut(...) end local function get_template_invocation_name(...) get_template_invocation_name = require(template_parser_module).getTemplateInvocationName return get_template_invocation_name(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function track(...) track = require(debug_track_module) return track(...) end local function uses_hidden_category(...) uses_hidden_category = require(maintenance_category_module).uses_hidden_category return uses_hidden_category(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local current_title local function get_current_title() current_title, get_current_title = mw.title.getCurrentTitle(), nil return current_title end local is_documentation local function get_is_documentation() is_documentation, get_is_documentation = require(pages_module).is_documentation(current_title or get_current_title()), nil return is_documentation end local target local function get_target() get_target = nil -- If it's a documentation page, make the target point to the base page. if is_documentation == nil and get_is_documentation() or is_documentation then target = ((current_title or get_current_title()).basePageTitle or current_title).fullText -- Fallback is a failsafe, but shouldn't be needed. return target end local namespace = (current_title or get_current_title()).namespace -- Unless the page is a template or module, point to the current section with a fragment. Otherwise, just point to the current page. if not (namespace == 10 or (namespace == 828 and current_title.contentModel == "Scribunto")) then local current_section = require(pages_module).get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading (i.e. the top of the page). local headings, i = {}, 0 for heading in require(template_parser_module).find_headings(current_title.content) do i = i + 1 headings[i] = heading if heading.section == current_section then break end end -- Once the current section has been found, validate headings in reverse order until a valid one is found. while i ~= 0 do local anchor = headings[i]:get_anchor() if anchor ~= nil then -- Add the fragment. current_title.fragment = anchor:gsub("_", " ") break end i = i - 1 end end end target = current_title.fullText return target end local function handle_shortcut(title, demo) local namespace = title.namespace local text = namespace == 0 and title.text or namespace == 10 and get_template_invocation_name(title, "shortcut") or get_namespace_shortcut(title) .. ":" .. title.text local redlink, query = not title.content if redlink then query = { action = "edit", redlink = true, preloadtext = not demo and "#REDIRECT [[" .. (target or get_target()) .. "]]" or nil } else query = { redirect = "no", } end local tag = html_create("code"):wikitext((namespace == 10 and "{{[" or "[") .. tostring(title:fullUrl(query)) .. " ") if redlink then text = html_create("span") :addClass("redlink") :wikitext(text) end tag = tag:node(text):wikitext(namespace == 10 and "]}}" or "]") if demo then return tag elseif redlink then tag:addClass("attentionseeking") return tag, "redlink" end -- Check the target is correct. local redirect = title.redirectTarget if redirect and redirect.fullText == (target or get_target()) then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, "not shortcut" end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, alt_list, temp, nocat, demo) if nocat then track("shortcut box/nocat") end local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") local redlink, not_shortcut function add(list) for _, shortcut in ipairs(list) do div:tag("br") local shortcut, cat = handle_shortcut(shortcut, demo) div:node(shortcut) if cat == "redlink" then redlink = true elseif cat == "not shortcut" then not_shortcut = true end end end if #alt_list > 0 then div:wikitext(("%s%slternative name%s:"):format( temp and "Temporary " or "", temp and "a" or "A", #alt_list > 1 and "s" or "" )) add(alt_list) if #list > 0 then div:tag("hr") end end if #list > 0 then div:tag("span"):wikitext(("%s[[Wiktionary:Shortcuts|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) add(list) end if nocat or uses_hidden_category(current_title or get_current_title()) then return tostring(div) end local categories = {} -- Don't categorize documentation pages as being pages with shortcuts. if not (is_documentation == nil and get_is_documentation() or is_documentation) then insert(categories, "Wiktionary pages with shortcuts") end if redlink then insert(categories, "Shortcut boxes with redlinks") end if not_shortcut then insert(categories, "Shortcut boxes linking to non-shortcuts or shortcuts to other pages") end return tostring(div) .. format_categories(categories, nil, "-", nil, true) end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { -- Namespace 10 is Template. [1] = {type = "title", namespace = 10, list = true, sublist = "comma without whitespace", flatten = true}, ["alt"] = {type = "title", namespace = 10}, ["alt1"] = {type = "title", namespace = 10}, ["alt2"] = {type = "title", namespace = 10}, ["alt3"] = {type = "title", namespace = 10}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, -- To be removed: no use-case. ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) if (#args[1] == 0) and not (args.alt or args.alt1 or args.alt2 or args.alt3) then error("No shortcuts or alternative names were specified.") end return export.format_shortcuts(args[1], {args.alt or args.alt1, args.alt2, args.alt3}, args.temp, args.nocat, args.demo) end return export 0xglcj67vxfzh1fiaszmeph98tvzshc 36208 36207 2025-08-11T18:25:04Z Benwing2 1346 causes 139 errors, and in any case not the way to do it;Reverted edits by [[Special:Contributions/J3133|J3133]]. If you think this rollback is in error, please leave a message on my [[User talk:Benwing2|talk page]]. 36208 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local maintenance_category_module = "Module:maintenance category" local pages_module = "Module:pages" local parameters_module = "Module:parameters" local template_parser_module = "Module:template parser" local utilities_module = "Module:utilities" local html_create = mw.html.create local insert = table.insert local ipairs = ipairs local require = require local tostring = tostring --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function get_namespace_shortcut(...) get_namespace_shortcut = require(pages_module).get_namespace_shortcut return get_namespace_shortcut(...) end local function get_template_invocation_name(...) get_template_invocation_name = require(template_parser_module).getTemplateInvocationName return get_template_invocation_name(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function track(...) track = require(debug_track_module) return track(...) end local function uses_hidden_category(...) uses_hidden_category = require(maintenance_category_module).uses_hidden_category return uses_hidden_category(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local current_title local function get_current_title() current_title, get_current_title = mw.title.getCurrentTitle(), nil return current_title end local is_documentation local function get_is_documentation() is_documentation, get_is_documentation = require(pages_module).is_documentation(current_title or get_current_title()), nil return is_documentation end local target local function get_target() get_target = nil -- If it's a documentation page, make the target point to the base page. if is_documentation == nil and get_is_documentation() or is_documentation then target = ((current_title or get_current_title()).basePageTitle or current_title).fullText -- Fallback is a failsafe, but shouldn't be needed. return target end local namespace = (current_title or get_current_title()).namespace -- Unless the page is a template or module, point to the current section with a fragment. Otherwise, just point to the current page. if not (namespace == 10 or (namespace == 828 and current_title.contentModel == "Scribunto")) then local current_section = require(pages_module).get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading (i.e. the top of the page). local headings, i = {}, 0 for heading in require(template_parser_module).find_headings(current_title.content) do i = i + 1 headings[i] = heading if heading.section == current_section then break end end -- Once the current section has been found, validate headings in reverse order until a valid one is found. while i ~= 0 do local anchor = headings[i]:get_anchor() if anchor ~= nil then -- Add the fragment. current_title.fragment = anchor:gsub("_", " ") break end i = i - 1 end end end target = current_title.fullText return target end local function handle_shortcut(title, demo) local namespace = title.namespace local text = namespace == 0 and title.text or namespace == 10 and get_template_invocation_name(title, "shortcut") or get_namespace_shortcut(title) .. ":" .. title.text local redlink, query = not title.content if redlink then query = { action = "edit", redlink = true, preloadtext = not demo and "#REDIRECT [[" .. (target or get_target()) .. "]]" or nil } else query = { redirect = "no", } end local tag = html_create("code"):wikitext((namespace == 10 and "{{[" or "[") .. tostring(title:fullUrl(query)) .. " ") if redlink then text = html_create("span") :addClass("redlink") :wikitext(text) end tag = tag:node(text):wikitext(namespace == 10 and "]}}" or "]") if demo then return tag elseif redlink then tag:addClass("attentionseeking") return tag, "redlink" end -- Check the target is correct. local redirect = title.redirectTarget if redirect and redirect.fullText == (target or get_target()) then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, "not shortcut" end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) if nocat then track("shortcut box/nocat") end local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local redlink, not_shortcut for _, shortcut in ipairs(list) do div:tag("br") local shortcut, cat = handle_shortcut(shortcut, demo) div:node(shortcut) if cat == "redlink" then redlink = true elseif cat == "not shortcut" then not_shortcut = true end end if nocat or uses_hidden_category(current_title or get_current_title()) then return tostring(div) end local categories = {} -- Don't categorize documentation pages as being pages with shortcuts. if not (is_documentation == nil and get_is_documentation() or is_documentation) then insert(categories, "Wiktionary pages with shortcuts") end if redlink then insert(categories, "Shortcut boxes with redlinks") end if not_shortcut then insert(categories, "Shortcut boxes linking to non-shortcuts or shortcuts to other pages") end return tostring(div) .. format_categories(categories, nil, "-", nil, true) end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { -- Namespace 10 is Template. [1] = {required = true, type = "title", namespace = 10, list = true, sublist = "comma without whitespace", flatten = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, -- To be removed: no use-case. ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export 1uqyzbk9bvybtow1qhfbdq8barmw98t 36209 36208 2026-05-26T08:24:25Z King ChristLike 964 59 revisions imported from [[:en:Module:shortcut_box]] 36208 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local maintenance_category_module = "Module:maintenance category" local pages_module = "Module:pages" local parameters_module = "Module:parameters" local template_parser_module = "Module:template parser" local utilities_module = "Module:utilities" local html_create = mw.html.create local insert = table.insert local ipairs = ipairs local require = require local tostring = tostring --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function get_namespace_shortcut(...) get_namespace_shortcut = require(pages_module).get_namespace_shortcut return get_namespace_shortcut(...) end local function get_template_invocation_name(...) get_template_invocation_name = require(template_parser_module).getTemplateInvocationName return get_template_invocation_name(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function track(...) track = require(debug_track_module) return track(...) end local function uses_hidden_category(...) uses_hidden_category = require(maintenance_category_module).uses_hidden_category return uses_hidden_category(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local current_title local function get_current_title() current_title, get_current_title = mw.title.getCurrentTitle(), nil return current_title end local is_documentation local function get_is_documentation() is_documentation, get_is_documentation = require(pages_module).is_documentation(current_title or get_current_title()), nil return is_documentation end local target local function get_target() get_target = nil -- If it's a documentation page, make the target point to the base page. if is_documentation == nil and get_is_documentation() or is_documentation then target = ((current_title or get_current_title()).basePageTitle or current_title).fullText -- Fallback is a failsafe, but shouldn't be needed. return target end local namespace = (current_title or get_current_title()).namespace -- Unless the page is a template or module, point to the current section with a fragment. Otherwise, just point to the current page. if not (namespace == 10 or (namespace == 828 and current_title.contentModel == "Scribunto")) then local current_section = require(pages_module).get_current_section() if current_section ~= 0 then -- Section 0 is everything before the first heading (i.e. the top of the page). local headings, i = {}, 0 for heading in require(template_parser_module).find_headings(current_title.content) do i = i + 1 headings[i] = heading if heading.section == current_section then break end end -- Once the current section has been found, validate headings in reverse order until a valid one is found. while i ~= 0 do local anchor = headings[i]:get_anchor() if anchor ~= nil then -- Add the fragment. current_title.fragment = anchor:gsub("_", " ") break end i = i - 1 end end end target = current_title.fullText return target end local function handle_shortcut(title, demo) local namespace = title.namespace local text = namespace == 0 and title.text or namespace == 10 and get_template_invocation_name(title, "shortcut") or get_namespace_shortcut(title) .. ":" .. title.text local redlink, query = not title.content if redlink then query = { action = "edit", redlink = true, preloadtext = not demo and "#REDIRECT [[" .. (target or get_target()) .. "]]" or nil } else query = { redirect = "no", } end local tag = html_create("code"):wikitext((namespace == 10 and "{{[" or "[") .. tostring(title:fullUrl(query)) .. " ") if redlink then text = html_create("span") :addClass("redlink") :wikitext(text) end tag = tag:node(text):wikitext(namespace == 10 and "]}}" or "]") if demo then return tag elseif redlink then tag:addClass("attentionseeking") return tag, "redlink" end -- Check the target is correct. local redirect = title.redirectTarget if redirect and redirect.fullText == (target or get_target()) then return tag end -- If not, flag for attention. tag:addClass("attentionseeking") return tag, "not shortcut" end -- Takes `list`, an array of title objects, and returns a shortcut box. function export.format_shortcuts(list, temp, nocat, demo) if nocat then track("shortcut box/nocat") end local div = html_create("div") :addClass("noprint") :addClass("plainlinks") :addClass("shortcut-box") :wikitext(("%s[[Wiktionary:Shortcut|%shortcut%s]]:"):format( temp and "Temporary " or "", temp and "s" or "S", list[2] and "s" or "" )) local redlink, not_shortcut for _, shortcut in ipairs(list) do div:tag("br") local shortcut, cat = handle_shortcut(shortcut, demo) div:node(shortcut) if cat == "redlink" then redlink = true elseif cat == "not shortcut" then not_shortcut = true end end if nocat or uses_hidden_category(current_title or get_current_title()) then return tostring(div) end local categories = {} -- Don't categorize documentation pages as being pages with shortcuts. if not (is_documentation == nil and get_is_documentation() or is_documentation) then insert(categories, "Wiktionary pages with shortcuts") end if redlink then insert(categories, "Shortcut boxes with redlinks") end if not_shortcut then insert(categories, "Shortcut boxes linking to non-shortcuts or shortcuts to other pages") end return tostring(div) .. format_categories(categories, nil, "-", nil, true) end function export.shortcut_t(frame) local boolean = {type = "boolean"} local params = { -- Namespace 10 is Template. [1] = {required = true, type = "title", namespace = 10, list = true, sublist = "comma without whitespace", flatten = true}, ["demo"] = {type = "boolean", demo = true}, ["nocat"] = boolean, -- To be removed: no use-case. ["temp"] = boolean, } local args = process_params(frame:getParent().args, params) return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo) end return export 1uqyzbk9bvybtow1qhfbdq8barmw98t Module:maintenance box 828 6627 36210 2008-05-18T11:45:29Z Conrad.Irwin 1315 meta template to solve issues with {rfc} {rfv} et al. and right floats, needs style moving to CSS. 36210 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1}}}" style="width: auto; margin: 0; padding: 0.5em; border-collapse: collapse;overflow: hidden;"> {| style="background:#{{#switch:{{{1|blue}}}|blue=EEEEFF|red=FFE7DD|yellow=FFFFDD}}; width:80%; margin: auto; border:1px dashed #{{#switch:{{{1|blue}}}|blue=4444AA|red=884444|yellow=888822}}; text-align:left" | rowspan="2"| {{{image}}} ! {{{title}}} |- | {{{text}}} |} </div> qinf0u3akdjds4uk34soi1281obi9aj 36211 36210 2008-05-18T11:52:22Z Conrad.Irwin 1315 make wider 36211 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1}}}" style="width: auto; margin: 0; padding: 0.5em; border-collapse: collapse;overflow: hidden;"> {| style="background:#{{#switch:{{{1|blue}}}|blue=EEEEFF|red=FFE7DD|yellow=FFFFDD}}; width:90%; margin: auto; border:1px dashed #{{#switch:{{{1|blue}}}|blue=4444AA|red=884444|yellow=888822}}; text-align:left" | rowspan="2"| {{{image}}} ! {{{title}}} |- | {{{text}}} |} </div> 6du5na9ryc8mnocp2gsr2qy2w8eyag1 36212 36211 2009-06-09T04:42:36Z Daniel Carrero 1329 Added category links. 36212 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1}}}" style="width: auto; margin: 0; padding: 0.5em; border-collapse: collapse;overflow: hidden;"> {| style="background:#{{#switch:{{{1|blue}}}|blue=EEEEFF|red=FFE7DD|yellow=FFFFDD}}; width:90%; margin: auto; border:1px dashed #{{#switch:{{{1|blue}}}|blue=4444AA|red=884444|yellow=888822}}; text-align:left" | rowspan="2"| {{{image}}} ! {{{title}}} |- | {{{text}}} |} </div><noinclude>[[Category:Verification templates]][[Category:Supplementary templates]]</noinclude> id7dwcc1dfmpjnrk5ynmo8535fut9xr 36213 36212 2009-06-09T04:45:03Z Daniel Carrero 1329 36213 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1}}}" style="width: auto; margin: 0; padding: 0.5em; border-collapse: collapse;overflow: hidden;"> {| style="background:#{{#switch:{{{1|blue}}}|blue=EEEEFF|red=FFE7DD|yellow=FFFFDD}}; width:90%; margin: auto; border:1px dashed #{{#switch:{{{1|blue}}}|blue=4444AA|red=884444|yellow=888822}}; text-align:left" | rowspan="2"| {{{image}}} ! {{{title}}} |- | {{{text}}} |} </div><noinclude>[[Category:Verification templates]][[Category:Supplementary templates]]</noinclude> tlt9g9k3oat2iwaddo02miyscoebkkt 36214 36213 2009-06-09T04:46:32Z EncycloPetey 1321 this makes the box too tall 36214 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1}}}" style="width: auto; margin: 0; padding: 0.5em; border-collapse: collapse;overflow: hidden;"> {| style="background:#{{#switch:{{{1|blue}}}|blue=EEEEFF|red=FFE7DD|yellow=FFFFDD}}; width:90%; margin: auto; border:1px dashed #{{#switch:{{{1|blue}}}|blue=4444AA|red=884444|yellow=888822}}; text-align:left" | rowspan="2"| {{{image}}} ! {{{title}}} |- | {{{text}}} |} </div> 6du5na9ryc8mnocp2gsr2qy2w8eyag1 36215 36214 2009-06-09T04:50:25Z Daniel Carrero 1329 36215 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1}}}" style="width: auto; margin: 0; padding: 0.5em; border-collapse: collapse;overflow: hidden;"> {| style="background:#{{#switch:{{{1|blue}}}|blue=EEEEFF|red=FFE7DD|yellow=FFFFDD}}; width:90%; margin: auto; border:1px dashed #{{#switch:{{{1|blue}}}|blue=4444AA|red=884444|yellow=888822}}; text-align:left" | rowspan="2"| {{{image}}} ! {{{title}}} |- | {{{text}}} |} </div><noinclude>[[Category:Verification templates]][[Category:Supplementary templates]]</noinclude> id7dwcc1dfmpjnrk5ynmo8535fut9xr 36216 36215 2010-01-28T01:04:25Z Conrad.Irwin 1315 [[Category:Template boxes]] 36216 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1}}}" style="width: auto; margin: 0; padding: 0.5em; border-collapse: collapse;overflow: hidden;"> {| style="background:#{{#switch:{{{1|blue}}}|blue=EEEEFF|red=FFE7DD|yellow=FFFFDD}}; width:90%; margin: auto; border:1px dashed #{{#switch:{{{1|blue}}}|blue=4444AA|red=884444|yellow=888822}}; text-align:left" | rowspan="2"| {{{image}}} ! {{{title}}} |- | {{{text}}} |} </div><noinclude>[[Category:Verification templates]][[Category:Supplementary templates]][[Category:Template boxes]]</noinclude> jrivpv12tj7idm5cui8135vnud06gl6 36217 36216 2010-04-24T23:49:48Z Conrad.Irwin 1315 make default work better 36217 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1|blue}}}" style="width: auto; margin: 0; padding: 0.5em; border-collapse: collapse;overflow: hidden;"> {| style="background:#{{#switch:{{{1|blue}}}||blue=EEEEFF|red=FFE7DD|yellow=FFFFDD}}; width:90%; margin: auto; border:1px dashed #{{#switch:{{{1|blue}}}|blue=4444AA|red=884444|yellow=888822}}; text-align:left" | rowspan="2"| {{{image}}} ! {{{title}}} |- | {{{text}}} |} </div><noinclude>[[Category:Verification templates]][[Category:Supplementary templates]][[Category:Template boxes]]</noinclude> 5gd4a8v7vxpiq9pulz9zldjxsh5tz27 36218 36217 2010-04-25T21:28:17Z Conrad.Irwin 1315 allow grey 36218 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1|blue}}}" style="width: auto; margin: 0; padding: 0.5em; border-collapse: collapse;overflow: hidden;"> {| style="background:#{{#switch:{{{1|blue}}}||blue=EEEEFF|red=FFE7DD|yellow=FFFFDD|grey=EEEEEE}}; width:90%; margin: auto; border:1px dashed #{{#switch:{{{1|blue}}}||blue=4444AA|red=884444|yellow=888822|grey=444444}}; text-align:left" | rowspan="2"| {{{image}}} ! {{{title}}} |- | {{{text}}} |} </div><noinclude>[[Category:Verification templates]][[Category:Supplementary templates]][[Category:Template boxes]]</noinclude> 54ilqoolewcbr53hvx0ictvjsuu9gi5 36219 36218 2010-04-25T21:28:38Z Conrad.Irwin 1315 +{{documentation}} 36219 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1|blue}}}" style="width: auto; margin: 0; padding: 0.5em; border-collapse: collapse;overflow: hidden;"> {| style="background:#{{#switch:{{{1|blue}}}||blue=EEEEFF|red=FFE7DD|yellow=FFFFDD|grey=EEEEEE}}; width:90%; margin: auto; border:1px dashed #{{#switch:{{{1|blue}}}||blue=4444AA|red=884444|yellow=888822|grey=444444}}; text-align:left" | rowspan="2"| {{{image}}} ! {{{title}}} |- | {{{text}}} |} </div><noinclude>{{documentation}} q414fnky5j5wobjn21ewb7k63vmfzvj 36220 36219 2010-11-15T23:32:35Z Yair rand 1377 Protected "[[Template:maintenance box]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) 36219 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1|blue}}}" style="width: auto; margin: 0; padding: 0.5em; border-collapse: collapse;overflow: hidden;"> {| style="background:#{{#switch:{{{1|blue}}}||blue=EEEEFF|red=FFE7DD|yellow=FFFFDD|grey=EEEEEE}}; width:90%; margin: auto; border:1px dashed #{{#switch:{{{1|blue}}}||blue=4444AA|red=884444|yellow=888822|grey=444444}}; text-align:left" | rowspan="2"| {{{image}}} ! {{{title}}} |- | {{{text}}} |} </div><noinclude>{{documentation}} q414fnky5j5wobjn21ewb7k63vmfzvj 36221 36220 2013-07-31T16:31:11Z Rua 1351 36221 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1|blue}}}" style="width: auto; margin: 0; padding: 0.5em; border-collapse: collapse;overflow: hidden;"> {| style="background:#{{#switch:{{{1|blue}}}||blue=EEEEFF|red=FFE7DD|yellow=FFFFDD|grey=F0F0F0}}; width:90%; margin: auto; border:1px dashed #{{#switch:{{{1|blue}}}||blue=4444AA|red=884444|yellow=888822|grey=444444}}; text-align:left" | rowspan="2"| {{{image}}} ! {{{title}}} |- | {{{text}}} |} </div><noinclude>{{documentation}} ghnprzreljj299ndzhqprwo38yvz413 36222 36221 2014-08-01T12:43:33Z Kephir 1378 move styles into the div 36222 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1|blue}}}" style="background:#{{#switch:{{{1|blue}}}||blue=EEEEFF|red=FFE7DD|yellow=FFFFDD|grey=F0F0F0}}; width:90%; margin: auto; border:1px dashed #{{#switch:{{{1|blue}}}||blue=4444AA|red=884444|yellow=888822|grey=444444}}; padding: 0.5em; "> {| | rowspan="2"| {{{image}}} ! {{{title}}} |- | {{{text}}} |}</div><noinclude>{{documentation}} kzgzniv73w32eab0l1fm6aves7sawed 36223 36222 2014-08-01T12:44:23Z Kephir 1378 style fix 36223 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1|blue}}}" style="background:#{{#switch:{{{1|blue}}}||blue=EEEEFF|red=FFE7DD|yellow=FFFFDD|grey=F0F0F0}}; width:90%; margin: auto; border:1px dashed #{{#switch:{{{1|blue}}}||blue=4444AA|red=884444|yellow=888822|grey=444444}}; padding: 0.5em; "> {| | rowspan="2" | {{{image}}} ! style="text-align: left;" | {{{title}}} |- | {{{text}}} |}</div><noinclude>{{documentation}} ib2mypowksurvfufu73wx3zzbci2poi 36224 36223 2014-08-01T17:49:53Z Kephir 1378 hmm 36224 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1|blue}}}" style="background:#{{#switch:{{{1|blue}}}||blue=EEEEFF|red=FFE7DD|yellow=FFFFDD|grey=F0F0F0}}; width:90%; margin: auto; border:1px dashed #{{#switch:{{{1|blue}}}||blue=4444AA|red=884444|yellow=888822|grey=444444}}; padding: 0.25em; "> {| | rowspan="2" | {{{image}}} ! style="text-align: left;" | {{{title}}} |- | {{{text}}} |}</div><noinclude>{{documentation}} 1tqko6skqv0f0pfklvdugonoe1bdypb 36225 36224 2014-08-15T11:20:50Z Kephir 1378 margin 36225 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1|blue}}}" style="background:#{{#switch:{{{1|blue}}}||blue=EEEEFF|red=FFE7DD|yellow=FFFFDD|grey=F0F0F0}}; width:90%; margin: 0.5em auto; border:1px dashed #{{#switch:{{{1|blue}}}||blue=4444AA|red=884444|yellow=888822|grey=444444}}; padding: 0.25em; "> {| | rowspan="2" | {{{image}}} ! style="text-align: left;" | {{{title}}} |- | {{{text}}} |}</div><noinclude>{{documentation}} 6v3gqwnvomhybcqq9z480ebp715xo3t 36226 36225 2014-08-15T11:39:29Z Kephir 1378 0.75em 36226 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1|blue}}}" style="background:#{{#switch:{{{1|blue}}}||blue=EEEEFF|red=FFE7DD|yellow=FFFFDD|grey=F0F0F0}}; width:90%; margin: 0.75em auto; border:1px dashed #{{#switch:{{{1|blue}}}||blue=4444AA|red=884444|yellow=888822|grey=444444}}; padding: 0.25em; "> {| | rowspan="2" | {{{image}}} ! style="text-align: left;" | {{{title}}} |- | {{{text}}} |}</div><noinclude>{{documentation}} tm6qiz17jnwoivowlgdgcbackjle96j 36227 36226 2014-11-18T20:13:20Z Kephir 1378 orange 36227 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1|blue}}}" style="background:#{{#switch:{{{1|blue}}}||blue=EEEEFF|red=FFE7DD|yellow=FFFFDD|grey=F0F0F0|orange=FFDD44}}; width:90%; margin: 0.75em auto; border:1px dashed #{{#switch:{{{1|blue}}}||blue=4444AA|red=884444|yellow=888822|grey=444444|orange=DDAA00}}; padding: 0.25em; "> {| | rowspan="2" | {{{image}}} ! style="text-align: left;" | {{{title}}} |- | {{{text}}} |}</div><noinclude>{{documentation}} 2dk0qvz6nlbsbhe68q2lcueiscf2ng0 36228 36227 2016-02-05T20:08:47Z TheDaveRoss 1305 Adding closing noinclude tag. 36228 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1|blue}}}" style="background:#{{#switch:{{{1|blue}}}||blue=EEEEFF|red=FFE7DD|yellow=FFFFDD|grey=F0F0F0|orange=FFDD44}}; width:90%; margin: 0.75em auto; border:1px dashed #{{#switch:{{{1|blue}}}||blue=4444AA|red=884444|yellow=888822|grey=444444|orange=DDAA00}}; padding: 0.25em; "> {| | rowspan="2" | {{{image}}} ! style="text-align: left;" | {{{title}}} |- | {{{text}}} |}</div><noinclude>{{documentation}}</noinclude> n8lldvtjper0ph2s663yda8kyuifv9z 36229 36228 2016-10-25T19:19:11Z TheDaveRoss 1305 Changed protection level for "[[Template:maintenance box]]": Adjusting the protection level from 'sysop' to 'template editor'. ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (in... 36228 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1|blue}}}" style="background:#{{#switch:{{{1|blue}}}||blue=EEEEFF|red=FFE7DD|yellow=FFFFDD|grey=F0F0F0|orange=FFDD44}}; width:90%; margin: 0.75em auto; border:1px dashed #{{#switch:{{{1|blue}}}||blue=4444AA|red=884444|yellow=888822|grey=444444|orange=DDAA00}}; padding: 0.25em; "> {| | rowspan="2" | {{{image}}} ! style="text-align: left;" | {{{title}}} |- | {{{text}}} |}</div><noinclude>{{documentation}}</noinclude> n8lldvtjper0ph2s663yda8kyuifv9z 36230 36229 2022-08-27T12:23:41Z WingerBot 1359 remove extraneous spaces at end of line 36230 wikitext text/x-wiki <div class="noprint maintenance-box maintenance-box-{{{1|blue}}}" style="background:#{{#switch:{{{1|blue}}}||blue=EEEEFF|red=FFE7DD|yellow=FFFFDD|grey=F0F0F0|orange=FFDD44}}; width:90%; margin: 0.75em auto; border:1px dashed #{{#switch:{{{1|blue}}}||blue=4444AA|red=884444|yellow=888822|grey=444444|orange=DDAA00}}; padding: 0.25em; "> {| | rowspan="2" | {{{image}}} ! style="text-align: left;" | {{{title}}} |- | {{{text}}} |}</div><noinclude>{{documentation}}</noinclude> 6yazvx4esdwp4k9il2jp13vl6amf9b1 36231 36230 2024-09-10T18:53:06Z Surjection 380 use TemplateStyles 36231 wikitext text/x-wiki <templatestyles src="Template:maintenance box/styles.css" /><div class="noprint maintenance-box maintenance-box-{{{1|blue}}}"> {| | rowspan="2" | {{{image}}} ! style="text-align: left;" | {{{title}}} |- | {{{text}}} |}</div><noinclude>{{documentation}}</noinclude> tbevs2b3q1wg1g0axe388zrb6tdxwo0 36232 36231 2024-09-13T01:01:21Z Theknightwho 1347 Use unified stylesheet. 36232 wikitext text/x-wiki <templatestyles src="Module:message box/styles.css" /><div class="noprint maintenance-box maintenance-box-{{{1|blue}}}"> {| | rowspan="2" | {{{image}}} ! style="text-align: left;" | {{{title}}} |- | {{{text}}} |}</div><noinclude>{{documentation}}</noinclude> dsiunqyag7fwwxqu7dwzqjbaslgmzud 36233 36232 2025-10-02T18:21:14Z Ioaxxere 1384 add class 36233 wikitext text/x-wiki <templatestyles src="Module:message box/styles.css" /><div class="noprint maintenance-box maintenance-box-{{{1|blue}}}"> {| | rowspan="2" class="maintenance-box-image-cell" | {{{image}}} ! style="text-align: left;" | {{{title}}} |- | {{{text}}} |}</div><noinclude>{{documentation}}</noinclude> koy60auofsod2m9m4z9s09fscwzic84 36234 36233 2025-10-09T09:07:54Z Juwan 804 36234 wikitext text/x-wiki <templatestyles src="Module:message box/styles.css" /><div class="noprint maintenance-box maintenance-box-{{{1|blue}}}"> {| | rowspan="2" class="maintenance-box-image-cell" | {{{image|[[File:Codex icon Notice blue.svg|40px|alt=Notice]]}}} ! style="text-align: left;" | {{{title|}}} |- | {{{text|}}} |}</div><noinclude>{{documentation}}</noinclude> pn4fc374opf897cbzurxrblzw75otms 36235 36234 2026-05-26T08:24:32Z King ChristLike 964 25 revisions imported from [[:en:Template:maintenance_box]] 36234 wikitext text/x-wiki <templatestyles src="Module:message box/styles.css" /><div class="noprint maintenance-box maintenance-box-{{{1|blue}}}"> {| | rowspan="2" class="maintenance-box-image-cell" | {{{image|[[File:Codex icon Notice blue.svg|40px|alt=Notice]]}}} ! style="text-align: left;" | {{{title|}}} |- | {{{text|}}} |}</div><noinclude>{{documentation}}</noinclude> pn4fc374opf897cbzurxrblzw75otms Module:documentation needed 828 6628 36239 2013-07-31T14:20:44Z Rua 1351 Created page with "<includeonly>[[Category:Templates and modules needing documentation]]</includeonly><!-- --><noinclude>{{documentation}}</noinclude>" 36239 wikitext text/x-wiki <includeonly>[[Category:Templates and modules needing documentation]]</includeonly><!-- --><noinclude>{{documentation}}</noinclude> qpr8sea9bkqegtymg38wrsffya343lc 36240 36239 2013-07-31T14:24:25Z Rua 1351 36240 wikitext text/x-wiki <includeonly><!-- if not on a /documentation subpage, do nothing -->{{#switch:{{lc:{{SUBPAGENAME}}}}|documentation|doc=<!-- -->[[Category:Templates and modules needing documentation]]<!-- -->}}<!-- --></includeonly><!-- --><noinclude>{{documentation}}</noinclude> nq0jq69zniq916g0as5dkw9m9ekiiha 36241 36240 2013-07-31T14:40:25Z Rua 1351 36241 wikitext text/x-wiki <includeonly><!-- -->[[Category:Templates and modules needing documentation]]<!-- --></includeonly><!-- --><noinclude>{{documentation}}</noinclude> 5ggxw9usnft6zz3vsdi5krl8ki1sg8x 36242 36241 2013-07-31T14:41:22Z Rua 1351 36242 wikitext text/x-wiki <includeonly><!-- -->{{#switch:{{lc:{{SUBPAGENAME}}}}<!-- -->|documentation|doc=<!-- Don't categorize the documentation page itself -->|#default=[[Category:Templates and modules needing documentation]]<!-- -->}}<!-- --></includeonly><!-- --><noinclude>{{documentation}}</noinclude> f29tdbii4zze6jfg0n3p6qwddwj050j 36243 36242 2013-07-31T16:48:21Z Rua 1351 36243 wikitext text/x-wiki <!-- -->{{maintenance box|blue<!-- -->| title = This {{#switch:{{NAMESPACE}}|Module=module|#default=template}} needs documentation.<!-- -->| image = [[File:Text-x-generic with pencil.svg|40px]]<!-- -->| text = Please [[Help:Documenting templates and modules|document]] this {{#switch:{{NAMESPACE}}|Module=module|#default=template}} by describing its purpose and usage on the [[{{FULLPAGENAME}}/documentation|documentation page]].<!-- -->}}<!-- --><includeonly><!-- -->{{#switch:{{lc:{{SUBPAGENAME}}}}<!-- -->|documentation|doc=<!-- Don't categorize the documentation page itself -->|#default=[[Category:Templates and modules needing documentation]]<!-- -->}}<!-- --></includeonly><!-- --><noinclude>{{documentation}}</noinclude> g42d5glltwp24nuk03j64zcccfcgtz1 36244 36243 2013-07-31T16:51:46Z Rua 1351 36244 wikitext text/x-wiki <!-- -->{{maintenance box|blue<!-- -->| title = This {{#switch:{{NAMESPACE}}|Module=module|#default=template}} needs documentation.<!-- -->| image = [[File:Text-x-generic with pencil.svg|40px]]<!-- -->| text = Please [[Help:Documenting templates and modules|document]] this {{#switch:{{NAMESPACE}}|Module=module|#default=template}} by describing its purpose and usage on {{#switch:{{SUBPAGENAME}}|documentation|doc=this page|the [[{{FULLPAGENAME}}/documentation|documentation page]]}}.<!-- -->}}<!-- --><includeonly><!-- -->{{#switch:{{SUBPAGENAME}}<!-- -->|documentation|doc=<!-- Don't categorize the documentation page itself -->|#default=[[Category:Templates and modules needing documentation]]<!-- -->}}<!-- --></includeonly><!-- --><noinclude>{{documentation}}</noinclude> 53j474l4yyexif6q7vebaxfqmu4b07e 36245 36244 2024-04-27T12:46:51Z SurjectionBot 1386 Protected "[[Template:documentation needed]]": (bot) automatically protect highly visible templates/modules (reference score: 1000+ >= 1000) ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite)) 36244 wikitext text/x-wiki <!-- -->{{maintenance box|blue<!-- -->| title = This {{#switch:{{NAMESPACE}}|Module=module|#default=template}} needs documentation.<!-- -->| image = [[File:Text-x-generic with pencil.svg|40px]]<!-- -->| text = Please [[Help:Documenting templates and modules|document]] this {{#switch:{{NAMESPACE}}|Module=module|#default=template}} by describing its purpose and usage on {{#switch:{{SUBPAGENAME}}|documentation|doc=this page|the [[{{FULLPAGENAME}}/documentation|documentation page]]}}.<!-- -->}}<!-- --><includeonly><!-- -->{{#switch:{{SUBPAGENAME}}<!-- -->|documentation|doc=<!-- Don't categorize the documentation page itself -->|#default=[[Category:Templates and modules needing documentation]]<!-- -->}}<!-- --></includeonly><!-- --><noinclude>{{documentation}}</noinclude> 53j474l4yyexif6q7vebaxfqmu4b07e 36246 36245 2025-10-08T15:29:39Z Surjection 380 36246 wikitext text/x-wiki <!-- -->{{maintenance box|blue<!-- -->| title = This {{#switch:{{NAMESPACE}}|Module=module|#default=template}} needs documentation.<!-- -->| image = [[File:Text-x-generic with pencil.svg|40px|link=]]<!-- -->| text = Please [[Help:Documenting templates and modules|document]] this {{#switch:{{NAMESPACE}}|Module=module|#default=template}} by describing its purpose and usage on {{#switch:{{SUBPAGENAME}}|documentation|doc=this page|the [[{{FULLPAGENAME}}/documentation|documentation page]]}}.<!-- -->}}<!-- --><includeonly><!-- -->{{#switch:{{SUBPAGENAME}}<!-- -->|documentation|doc=<!-- Don't categorize the documentation page itself -->|#default=[[Category:Templates and modules needing documentation]]<!-- -->}}<!-- --></includeonly><!-- --><noinclude>{{documentation}}</noinclude> 1q8cnz4z0597utgp5ip0rsw54a9nf00 36247 36246 2025-10-10T16:29:44Z Juwan 804 36247 wikitext text/x-wiki {{notice | title = This {{#switch:{{NAMESPACE}}|Module=module|#default=template}} needs documentation. | text = Please [[Help:Documenting templates and modules|document]] this {{#switch:{{NAMESPACE}}|Module=module|#default=template}} by describing its purpose and usage on {{#switch:{{SUBPAGENAME}}|documentation|doc=this page|the [[{{FULLPAGENAME}}/documentation|documentation page]]}}. }}<!-- --><includeonly><!-- -->{{#switch:{{SUBPAGENAME}}<!-- -->|documentation|doc=<!-- Don't categorize the documentation page itself -->|#default=[[Category:Templates and modules needing documentation]]<!-- -->}}<!-- --></includeonly><!-- --><noinclude>{{documentation}}</noinclude> au4b7g740p3khh3eh0zc88aoo5lsqx5 36248 36247 2026-04-15T18:03:49Z Surjection 380 Changed protection settings for "[[Template:documentation needed]]": Highly visible template/module ([Edit=Allow only autopatrollers] (indefinite) [Move=Allow only autopatrollers] (indefinite)) 36247 wikitext text/x-wiki {{notice | title = This {{#switch:{{NAMESPACE}}|Module=module|#default=template}} needs documentation. | text = Please [[Help:Documenting templates and modules|document]] this {{#switch:{{NAMESPACE}}|Module=module|#default=template}} by describing its purpose and usage on {{#switch:{{SUBPAGENAME}}|documentation|doc=this page|the [[{{FULLPAGENAME}}/documentation|documentation page]]}}. }}<!-- --><includeonly><!-- -->{{#switch:{{SUBPAGENAME}}<!-- -->|documentation|doc=<!-- Don't categorize the documentation page itself -->|#default=[[Category:Templates and modules needing documentation]]<!-- -->}}<!-- --></includeonly><!-- --><noinclude>{{documentation}}</noinclude> au4b7g740p3khh3eh0zc88aoo5lsqx5 36249 36248 2026-05-26T08:24:36Z King ChristLike 964 10 revisions imported from [[:en:Template:documentation_needed]] 36247 wikitext text/x-wiki {{notice | title = This {{#switch:{{NAMESPACE}}|Module=module|#default=template}} needs documentation. | text = Please [[Help:Documenting templates and modules|document]] this {{#switch:{{NAMESPACE}}|Module=module|#default=template}} by describing its purpose and usage on {{#switch:{{SUBPAGENAME}}|documentation|doc=this page|the [[{{FULLPAGENAME}}/documentation|documentation page]]}}. }}<!-- --><includeonly><!-- -->{{#switch:{{SUBPAGENAME}}<!-- -->|documentation|doc=<!-- Don't categorize the documentation page itself -->|#default=[[Category:Templates and modules needing documentation]]<!-- -->}}<!-- --></includeonly><!-- --><noinclude>{{documentation}}</noinclude> au4b7g740p3khh3eh0zc88aoo5lsqx5 Module:notice 828 6629 36250 2005-11-17T19:53:26Z Hydrargyrum 1482 Template copied from Wikipedia 36250 wikitext text/x-wiki {| class="messagebox standard-talk" |- |align="center"|[[Image:Info-icon.png|Comment]] |align="left" width="100%"|{{{1}}} |} 3e6lzwjud0a95g85yvlk4lgvl755u18 36251 36250 2006-04-26T10:04:31Z Vildricianus 1301 [[Template:Notice]] moved to [[Template:notice]] 36250 wikitext text/x-wiki {| class="messagebox standard-talk" |- |align="center"|[[Image:Info-icon.png|Comment]] |align="left" width="100%"|{{{1}}} |} 3e6lzwjud0a95g85yvlk4lgvl755u18 36252 36251 2009-12-07T07:07:08Z This, that and the other 894 style fix- will finish 36252 wikitext text/x-wiki {| class="messagebox standard-talk" |- |align="center"|[[Image:Information-icon.svg|width=60px|link=|Notice]] |align="left" width="100%"|{{{1}}} |} 05ijzy4uynms5a5u4h8xnurfp0oyi8w 36253 36252 2009-12-07T07:07:26Z This, that and the other 894 wrong icon 36253 wikitext text/x-wiki {| class="messagebox standard-talk" |- |align="center"|[[Image:Information icon.svg|width=60px|link=|Notice]] |align="left" width="100%"|{{{1}}} |} ixvvq5xe7zn6feiof50uw8pyuhbwxdr 36254 36253 2009-12-07T08:56:14Z This, that and the other 894 there, that's better - now it looks like a WP {{ombox}} 36254 wikitext text/x-wiki {| class="wikitable" style="margin: 4px 10%;" |- |align="center" style="border-right:0px;padding:2px 0px 2px 0.9em;"|[[Image:Information icon.svg|60px|link=|Notice]] |align="left" style="border-left:0px;width:100%;padding:0.25em 0.9em;"|{{{1}}} |} ar3zei9c451l1e62wevcxrzxcg4xcu8 36255 36254 2009-12-07T08:59:50Z This, that and the other 894 add parameters 36255 wikitext text/x-wiki {| class="wikitable" style="margin: 4px 10%;" |- |align="center" style="border-right:0px;padding:2px 0px 2px 0.9em;"|[[File:{{{image|{{{icon|Information icon.svg}}}}}}|60px|link=|information]] |align="left" style="border-left:0px;width:100%;padding:0.25em 0.9em;"|{{{text|{{{1}}}}}} |} 9vsf9w8urw9h1io0twru9nbrib593pn 36256 36255 2011-09-26T18:07:15Z Internoob 1389 documentation 36256 wikitext text/x-wiki {| class="wikitable" style="margin: 4px 10%;" |- |align="center" style="border-right:0px;padding:2px 0px 2px 0.9em;"|[[File:{{{image|{{{icon|Information icon.svg}}}}}}|60px|link=|information]] |align="left" style="border-left:0px;width:100%;padding:0.25em 0.9em;"|{{{text|{{{1}}}}}} |}<noinclude>{{documentation}}</noinclude> dn0vj7fskgn8ynff4p7l6gel9te1rdw 36257 36256 2018-10-22T19:41:05Z WOSlinker 1483 bgcolor update to style 36257 wikitext text/x-wiki {| class="wikitable" style="margin: 4px 10%;" |- |style="text-align:center;border-right:0px;padding:2px 0px 2px 0.9em;"|[[File:{{{image|{{{icon|Information icon.svg}}}}}}|60px|link=|information]] |style="text-align:left;border-left:0px;width:100%;padding:0.25em 0.9em;"|{{{text|{{{1}}}}}} |}<noinclude>{{documentation}}</noinclude> m01o3e0fyy4dq8u9nx9h677cxu355zy 36258 36257 2018-11-17T16:39:27Z 90.224.200.175 LOLOOLOLOLOLOLOLOOLOLOLOLOLOLOLOLOLOLOLOLOL 36258 wikitext text/x-wiki {| class="wikitable" style="margin: 4px 10%;" |- |style="text-align:center;border-right:0px;padding:2px 0px 2px 0.9em;"|[[File:{{{image|{{{icon|Information icon.svg}}}}}}|60px|information]] |style="text-align:left;border-left:0px;width:100%;padding:0.25em 0.9em;"|{{{text|{{{1}}}}}} |}<noinclude>{{documentation}}</noinclude> 13afkdq6ll2ovuk0giim0yjv1vstqcj 36259 36258 2018-11-17T16:58:33Z PUC 1484 Reverted edits by [[Special:Contributions/90.224.200.175|90.224.200.175]]. If you think this rollback is in error, please leave a message on my talk page. 36259 wikitext text/x-wiki {| class="wikitable" style="margin: 4px 10%;" |- |style="text-align:center;border-right:0px;padding:2px 0px 2px 0.9em;"|[[File:{{{image|{{{icon|Information icon.svg}}}}}}|60px|link=|information]] |style="text-align:left;border-left:0px;width:100%;padding:0.25em 0.9em;"|{{{text|{{{1}}}}}} |}<noinclude>{{documentation}}</noinclude> m01o3e0fyy4dq8u9nx9h677cxu355zy 36260 36259 2018-11-26T18:37:30Z 213.66.94.143 36260 wikitext text/x-wiki {| class="wikitable" style="margin: 4px 10%;" |- |style="text-align:center;border-right:0px;padding:2px 0px 2px 0.9em;"|[[File:{{{image|{{{icon|Information icon.svg}}}}}}|60px{{!}}{{#ifeq:{{{link|}}}|none|link=|link={{{link}}}}}|information]] |style="text-align:left;border-left:0px;width:100%;padding:0.25em 0.9em;"|{{{text|{{{1}}}}}} |}<noinclude>{{documentation}}</noinclude> pqjunm05ca67vk3cvbgcpwwiyfol5gt 36261 36260 2019-02-02T23:07:34Z WOSlinker 1483 update link param 36261 wikitext text/x-wiki {| class="wikitable" style="margin: 4px 10%;" |style="text-align:center;border-right:0px;padding:2px 0px 2px 0.9em;"|[[File:{{{image|{{{icon|Information icon.svg}}}}}}|60px|link={{#ifeq:{{{link|}}}|none||{{{link|}}}}}|information]] |style="text-align:left;border-left:0px;width:100%;padding:0.25em 0.9em;"|{{{text|{{{1}}}}}} |}<noinclude>{{documentation}}</noinclude> tipqrq3ybki2yqvpuv7n4c5jw8mbqg3 36262 36261 2025-04-13T10:26:33Z Surjection 380 Protected "[[Template:notice]]" ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite)) 36261 wikitext text/x-wiki {| class="wikitable" style="margin: 4px 10%;" |style="text-align:center;border-right:0px;padding:2px 0px 2px 0.9em;"|[[File:{{{image|{{{icon|Information icon.svg}}}}}}|60px|link={{#ifeq:{{{link|}}}|none||{{{link|}}}}}|information]] |style="text-align:left;border-left:0px;width:100%;padding:0.25em 0.9em;"|{{{text|{{{1}}}}}} |}<noinclude>{{documentation}}</noinclude> tipqrq3ybki2yqvpuv7n4c5jw8mbqg3 36263 36262 2025-04-13T10:27:25Z Surjection 380 36263 wikitext text/x-wiki {| class="wikitable" style="margin: 4px 10%; {{{style|}}}" |style="text-align:center;border-right:0px;padding:2px 0px 2px 0.9em;"|[[File:{{{image|{{{icon|Information icon.svg}}}}}}|60px|link={{#ifeq:{{{link|}}}|none||{{{link|}}}}}|information]] |style="text-align:left;border-left:0px;width:100%;padding:0.25em 0.9em;"|{{{text|{{{1}}}}}} |}<noinclude>{{documentation}}</noinclude> smvv70rmgeye1lu5h4f80aixeozewv5 36264 36263 2025-04-13T13:08:50Z Koavf 8 Using a table for layout in 2025, really? Previewed and it works, if a bit wonky. 36264 wikitext text/x-wiki <div class="wikitable" style="margin: 4px 10%; {{{style|}}}">[[File:{{{image|{{{icon|Information icon.svg}}}}}}|60px|link={{#ifeq:{{{link|}}}|none||{{{link|}}}}}|information]] {{{text|{{{1}}}}}}<noinclude>{{documentation}}</noinclude> t3qb61kq0a7hozb9y9fsdzwlaos62ig 36265 36264 2025-04-13T20:45:01Z Surjection 380 it does not, the image shows up in the complete wrong place for one 36265 wikitext text/x-wiki {| class="wikitable" style="margin: 4px 10%; {{{style|}}}" |style="text-align:center;border-right:0px;padding:2px 0px 2px 0.9em;"|[[File:{{{image|{{{icon|Information icon.svg}}}}}}|60px|link={{#ifeq:{{{link|}}}|none||{{{link|}}}}}|information]] |style="text-align:left;border-left:0px;width:100%;padding:0.25em 0.9em;"|{{{text|{{{1}}}}}} |}<noinclude>{{documentation}}</noinclude> smvv70rmgeye1lu5h4f80aixeozewv5 36266 36265 2025-04-15T13:17:41Z Surjection 380 36266 wikitext text/x-wiki {| class="wikitable" style="margin: 4px 10%; {{{style|}}}" |style="text-align:center;border-right:0px;padding:2px 0px 2px 0.9em;"|[[File:{{{image|{{{icon|Information icon.svg}}}}}}|60px|alt=Information: |link={{#ifeq:{{{link|}}}|none||{{{link|}}}}}]] |style="text-align:left;border-left:0px;width:100%;padding:0.25em 0.9em;"|{{{text|{{{1}}}}}} |}<noinclude>{{documentation}}</noinclude> i3fabb1n7oqdzoypv2s6ka512b9potd 36267 36266 2025-08-21T13:06:10Z Catonif 1360 Changed protection settings for "[[Template:notice]]": for User:JnpoJuwan to edit ([Edit=Allow only autopatrollers] (indefinite) [Move=Allow only autopatrollers] (indefinite)) 36266 wikitext text/x-wiki {| class="wikitable" style="margin: 4px 10%; {{{style|}}}" |style="text-align:center;border-right:0px;padding:2px 0px 2px 0.9em;"|[[File:{{{image|{{{icon|Information icon.svg}}}}}}|60px|alt=Information: |link={{#ifeq:{{{link|}}}|none||{{{link|}}}}}]] |style="text-align:left;border-left:0px;width:100%;padding:0.25em 0.9em;"|{{{text|{{{1}}}}}} |}<noinclude>{{documentation}}</noinclude> i3fabb1n7oqdzoypv2s6ka512b9potd 36268 36267 2025-08-21T13:15:57Z Juwan 804 36268 wikitext text/x-wiki {{maintenance box|blue | image = [[File:Codex icon Notice blue.svg|40px]] | title = {{{title|Note}}} | text = {{{text|{{{1}}}}}} }}<noinclude>{{documentation}}</noinclude> pbs21xu7kzmsndtdrkhobb63ca9eokb 36269 36268 2025-08-21T19:14:50Z Juwan 804 [[w:MOS:EMPTYALT]] 36269 wikitext text/x-wiki {{maintenance box|blue | image = [[File:Codex icon Notice blue.svg|40px|alt=]] | title = {{{title|Note}}} | text = {{{text|{{{1}}}}}} }}<noinclude>{{documentation}}</noinclude> sfjsqgt3ea7r0igybirkcdzndftzmtj 36270 36269 2025-09-05T20:23:29Z AutoDooz 1452 Added parameter checking 36270 wikitext text/x-wiki {{#invoke:checkparams|error}}<!-- Validate template parameters -->{{maintenance box|blue | image = [[File:Codex icon Notice blue.svg|40px|alt=]] | title = {{{title|Note}}} | text = {{{text|{{{1}}}}}} }}<noinclude>{{documentation}}</noinclude> 4t04bgop5qida3o12dp968thvrrn3m6 36271 36270 2025-09-05T20:48:55Z JeffDoozan 1464 36271 wikitext text/x-wiki {{#invoke:checkparams|warn}}<!-- Validate template parameters -->{{maintenance box|blue | image = [[File:Codex icon Notice blue.svg|40px|alt=]] | title = {{{title|Note}}} | text = {{{text|{{{1}}}}}} }}<noinclude>{{documentation}}</noinclude> qtz5lxp0p13mip51gi9lks0595lvylv 36272 36271 2025-09-05T20:51:06Z JeffDoozan 1464 36272 wikitext text/x-wiki {{maintenance box|blue | image = [[File:Codex icon Notice blue.svg|40px|alt=]] | title = {{{title|Note}}} | text = {{{text|{{{1}}}}}} }}<noinclude>{{documentation}}</noinclude> sfjsqgt3ea7r0igybirkcdzndftzmtj 36273 36272 2025-09-12T12:39:41Z Surjection 380 36273 wikitext text/x-wiki {{maintenance box|blue | image = [[File:{{{image|{{{icon|Codex icon Notice blue.svg}}}}}}|40px|alt=]] | title = {{{title|Note}}} | text = {{{text|{{{1}}}}}} }}<noinclude>{{documentation}}</noinclude> ie6tn8nyfsalquvelv70216l8xg3cg7 36274 36273 2025-09-12T12:49:31Z Surjection 380 36274 wikitext text/x-wiki {{maintenance box|blue | image = [[File:{{{image|{{{icon|Codex icon Notice blue.svg}}}}}}|40px|alt=|link=]] | title = {{{title|Note}}} | text = {{{text|{{{1}}}}}} }}<noinclude>{{documentation}}</noinclude> 5i2kr0c7226yqt0ifkcfkfxzu5b53l1 36275 36274 2025-09-21T15:46:40Z Juwan 804 [[w:MOS:EMPTYALT]] 36275 wikitext text/x-wiki {{maintenance box|blue | image = [[File:{{{image|{{{icon|Codex icon Notice blue.svg}}}}}}|40px|alt=Notice]] | title = {{{title|Note}}} | text = {{{text|{{{1}}}}}} }}<noinclude>{{documentation}}</noinclude> 062tbzhgr0w5tq59k6o4rszstl6g7pn 36276 36275 2025-10-10T18:27:04Z Surjection 380 36276 wikitext text/x-wiki {{maintenance box|blue | image = [[File:{{{image|{{{icon|Codex icon Notice blue.svg}}}}}}|40px|alt=Notice|link=]] | title = {{{title|Note}}} | text = {{{text|{{{1}}}}}} }}<noinclude>{{documentation}}</noinclude> qx8xywb7hpaz41fn59usxjy6coydahp 36277 36276 2026-05-26T08:24:38Z King ChristLike 964 27 revisions imported from [[:en:Template:notice]] 36276 wikitext text/x-wiki {{maintenance box|blue | image = [[File:{{{image|{{{icon|Codex icon Notice blue.svg}}}}}}|40px|alt=Notice|link=]] | title = {{{title|Note}}} | text = {{{text|{{{1}}}}}} }}<noinclude>{{documentation}}</noinclude> qx8xywb7hpaz41fn59usxjy6coydahp Module:names 828 6630 36278 2025-11-14T18:25:52Z Juwan 804 Juwan moved page [[Template:names]] to [[Template:template redirect]]: Standardize name: used on other wikis 36278 wikitext text/x-wiki #REDIRECT [[Template:template redirect]] 5hzxpkbug9k2yybnsbbu6hmdasklewv 36279 36278 2026-05-26T08:24:38Z King ChristLike 964 1 revision imported from [[:en:Template:names]] 36278 wikitext text/x-wiki #REDIRECT [[Template:template redirect]] 5hzxpkbug9k2yybnsbbu6hmdasklewv Module:module cat 828 6631 36280 2017-06-15T18:33:18Z Erutuon 1339 invoke [[Module:module categorization]] 36280 wikitext text/x-wiki <includeonly>{{#invoke:module categorization|catboiler}}</includeonly><noinclude> {{documentation}} </noinclude> 0ypgg0u7veosc8prn4zkl7rsxkh286z 36281 36280 2017-07-24T00:49:11Z Erutuon 1339 incorrect function name 36281 wikitext text/x-wiki <includeonly>{{#invoke:module categorization|categorize}}</includeonly><noinclude> {{documentation}} </noinclude> qcmgkldyl43gqlqt4rzzqnsgh41llu4 36282 36281 2021-04-15T22:59:49Z Erutuon 1339 set is_template to differentiate from [[Module:documentation]]'s use of this function 36282 wikitext text/x-wiki <includeonly>{{#invoke:module categorization|categorize|is_template=1}}</includeonly><noinclude> {{documentation}} </noinclude> 43tc6gtqqbhiu31zsd6sq7liy6z0tz0 36283 36282 2026-05-26T08:24:38Z King ChristLike 964 3 revisions imported from [[:en:Template:module_cat]] 36282 wikitext text/x-wiki <includeonly>{{#invoke:module categorization|categorize|is_template=1}}</includeonly><noinclude> {{documentation}} </noinclude> 43tc6gtqqbhiu31zsd6sq7liy6z0tz0 Module:shortcut box/documentation 828 6632 36284 2017-01-24T08:11:04Z Erutuon 1339 categorizing as general utility 36284 wikitext text/x-wiki {{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> [[Category:General utility modules]] </includeonly> 1jg9ot11sf4wniuse6gz6wln3cpn1ua 36285 36284 2017-12-22T07:03:21Z Fish bowl 1382 [[Category:Modules that parse wikitext]] 36285 wikitext text/x-wiki {{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> [[Category:General utility modules]] [[Category:Modules that parse wikitext]] </includeonly> jrvex6807xriag0v4spn49kswqdiksv 36286 36285 2019-04-12T18:47:28Z 45.126.99.129 Replaced content with "gfh" 36286 wikitext text/x-wiki gfh rex2onvrewfdiexzcnf9gjoxplsm2lr 36287 36286 2019-04-12T18:53:22Z Surjection 380 Reverted edits by [[Special:Contributions/45.126.99.129|45.126.99.129]]. If you think this rollback is in error, please leave a message on my [[User talk:Surjection|talk page]]. 36287 wikitext text/x-wiki {{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> [[Category:General utility modules]] [[Category:Modules that parse wikitext]] </includeonly> jrvex6807xriag0v4spn49kswqdiksv 36288 36287 2021-12-15T05:57:04Z WingerBot 1359 [[:Category:Modules that parse wikitext]] -> [[:Category:Wikitext parsing modules]] (manually assisted) 36288 wikitext text/x-wiki {{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> [[Category:General utility modules]] [[Category:Wikitext parsing modules]] </includeonly> qgjgy61rogspdau16zrod9jsne08xnb 36289 36288 2022-09-26T10:43:20Z 2603:8081:5902:76CF:28CD:5F3C:3959:78CF Blanked the page 36289 wikitext text/x-wiki phoiac9h4m842xq45sp7s6u21eteeq1 36290 36289 2022-09-26T11:33:36Z Surjection 380 Reverted edits by [[Special:Contributions/2603:8081:5902:76CF:28CD:5F3C:3959:78CF|2603:8081:5902:76CF:28CD:5F3C:3959:78CF]]. If you think this rollback is in error, please leave a message on my [[User talk:Surjection|talk page]]. 36290 wikitext text/x-wiki {{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> [[Category:General utility modules]] [[Category:Wikitext parsing modules]] </includeonly> qgjgy61rogspdau16zrod9jsne08xnb 36291 36290 2023-12-18T11:03:25Z JWBTH 1472 + 36291 wikitext text/x-wiki {{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> Implementation of {{temp|shortcut}}. <includeonly> [[Category:General utility modules]] [[Category:Wikitext parsing modules]] </includeonly> ngsvjpbgl5ymepywnrp1ykht1mwy451 36292 36291 2024-03-08T07:18:09Z WingerBot 1359 'General utility modules' -> 'Utility modules' and remove user modules from categories (manually assisted) 36292 wikitext text/x-wiki {{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> Implementation of {{temp|shortcut}}. <includeonly> [[Category:Utility modules]] [[Category:Wikitext parsing modules]] </includeonly> e4idm7q1uj1ptbdgw8tr3two6gaw16h 36293 36292 2024-03-09T06:38:01Z WingerBot 1359 fix module categorization using {{module cat}} (manually assisted) 36293 wikitext text/x-wiki {{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> Implementation of {{temp|shortcut}}. {{module cat|-|Page generation}} 0ckxit2kxiqoptnb2a7cp8s6n4j9shp 36294 36293 2025-08-11T16:55:53Z J3133 1340 36294 wikitext text/x-wiki {{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> Implementation of {{temp|shortcut}} and {{temp|names}}. {{module cat|-|Page generation}} ohgkn39p3b70b4veqjnxv60sie7v5ml 36295 36294 2026-05-26T08:24:38Z King ChristLike 964 11 revisions imported from [[:en:Module:shortcut_box/documentation]] 36294 wikitext text/x-wiki {{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> Implementation of {{temp|shortcut}} and {{temp|names}}. {{module cat|-|Page generation}} ohgkn39p3b70b4veqjnxv60sie7v5ml Templeeti:user group 10 6664 39212 2022-09-08T16:02:02Z Useigor 1343 Created page with "{| class="wikitable" style="float:right;" |- ! Name | <code>{{{1}}}</code><br>[[:Category:Wiktionary users|{{{2}}}]] |- ! [[mw:Manual:User rights|Rights]] | [[Special:ListGroupRights#{{{1}}}|Special:ListGroupRights]] |- ! Members | [[Special:ListUsers/{{{1}}}|Special:ListUsers]] |- ! Change log | [[Special:Log/rights]] |- | colspan="2" style="text-align: center;" | {{#switch:{{{1}}}<!-- -->|flood=<!-- -->[[Wiktionary:Requests for flood flag|Nomination page]]<!-- -->|pa..." 39212 wikitext text/x-wiki {| class="wikitable" style="float:right;" |- ! Name | <code>{{{1}}}</code><br>[[:Category:Wiktionary users|{{{2}}}]] |- ! [[mw:Manual:User rights|Rights]] | [[Special:ListGroupRights#{{{1}}}|Special:ListGroupRights]] |- ! Members | [[Special:ListUsers/{{{1}}}|Special:ListUsers]] |- ! Change log | [[Special:Log/rights]] |- | colspan="2" style="text-align: center;" | {{#switch:{{{1}}}<!-- -->|flood=<!-- -->[[Wiktionary:Requests for flood flag|Nomination page]]<!-- -->|patroller|autopatrolled=<!-- -->[[Wiktionary:Whitelist|Nomination page]]<!-- -->|steward=<!-- -->[[meta:Stewards/Elections|Nomination page]]<!-- -->|ipblock-exempt=<!-- redirect, Wiktionary:Beer_parlour/2019/April#Blocked_on_the_Russian_Wikipedia -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions#Requests_for_global_IP_block_exemption|global]] steward<!-- -->|no-ipinfo<!-- -->|transwiki<!-- meta:Help:Import#Assignation_of_transwiki_import_rights -->|push-subscription-manager=<!-- undescribed -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions|global]] steward<!-- -->|sysop|bureaucrat|checkuser|bot=<!-- --><inputbox> type=create default=User:USERNAME for {{#switch:{{{1}}}|sysop=admin|bot=bot status|#default={{{1}}}}} editintro=Template:vote-{{{1}}}-intro preload=Template:vote-{{{1}}} prefix=Wiktionary:Votes/{{#switch:{{{1}}}|sysop=sy|bureaucrat=bc|checkuser=cu|bot=bt}}-{{CURRENTYEAR}}-{{CURRENTMONTH}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|#default=<!-- // specified |rollbacker|extendedmover|templateeditor // unspecified |confirmed|interface-admin|suppress |accountcreator // redirect // redirect |import // Wiktionary:Beer_parlour/2009/March#Request_for_importer_flag // empty |push-subscription-manager --><inputbox> type=commenttitle page=Wiktionary:Beer parlour default=User:USERNAME for {{{1}}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->}} |- ! Your groups | [[Special:UserRights/USERNAME|Special:UserRights]] / [[Special:Preferences|Preferences]] |- ! Group list | [[Special:ListGroupRights|Local]], [[meta:Special:GlobalGroupPermissions|Global]] |}<!-- --><includeonly>[[Category:Wiktionary users|{{{2}}}]]</includeonly><!-- --><noinclude>[[Category:Navigation templates]]</noinclude> 8xdstkrk282536tmzq7idav4k670m25 39213 39212 2022-09-08T16:10:43Z Useigor 1343 Wiktionary:Beer parlour: +{{CURRENTYEAR}} +{{CURRENTMONTHNAME}} 39213 wikitext text/x-wiki {| class="wikitable" style="float:right;" |- ! Name | <code>{{{1}}}</code><br>[[:Category:Wiktionary users|{{{2}}}]] |- ! [[mw:Manual:User rights|Rights]] | [[Special:ListGroupRights#{{{1}}}|Special:ListGroupRights]] |- ! Members | [[Special:ListUsers/{{{1}}}|Special:ListUsers]] |- ! Change log | [[Special:Log/rights]] |- | colspan="2" style="text-align: center;" | {{#switch:{{{1}}}<!-- -->|flood=<!-- -->[[Wiktionary:Requests for flood flag|Nomination page]]<!-- -->|patroller|autopatrolled=<!-- -->[[Wiktionary:Whitelist|Nomination page]]<!-- -->|steward=<!-- -->[[meta:Stewards/Elections|Nomination page]]<!-- -->|ipblock-exempt=<!-- redirect, Wiktionary:Beer_parlour/2019/April#Blocked_on_the_Russian_Wikipedia -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions#Requests_for_global_IP_block_exemption|global]] steward<!-- -->|no-ipinfo<!-- -->|transwiki<!-- meta:Help:Import#Assignation_of_transwiki_import_rights -->|push-subscription-manager=<!-- undescribed -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions|global]] steward<!-- -->|sysop|bureaucrat|checkuser|bot=<!-- --><inputbox> type=create default=User:USERNAME for {{#switch:{{{1}}}|sysop=admin|bot=bot status|#default={{{1}}}}} editintro=Template:vote-{{{1}}}-intro preload=Template:vote-{{{1}}} prefix=Wiktionary:Votes/{{#switch:{{{1}}}|sysop=sy|bureaucrat=bc|checkuser=cu|bot=bt}}-{{CURRENTYEAR}}-{{CURRENTMONTH}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|#default=<!-- // specified |rollbacker|extendedmover|templateeditor // unspecified |confirmed|interface-admin|suppress |accountcreator // redirect // redirect |import // Wiktionary:Beer_parlour/2009/March#Request_for_importer_flag // empty |push-subscription-manager --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for {{{1}}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->}} |- ! Your groups | [[Special:UserRights/USERNAME|Special:UserRights]] / [[Special:Preferences|Preferences]] |- ! Group list | [[Special:ListGroupRights|Local]], [[meta:Special:GlobalGroupPermissions|Global]] |}<!-- --><includeonly>[[Category:Wiktionary users|{{{2}}}]]</includeonly><!-- --><noinclude>[[Category:Navigation templates]]</noinclude> l1c93oa3mi1m2fugls96w13hs5cm4v6 39214 39213 2022-09-08T16:30:43Z Useigor 1343 {{{1}}} does not work in <inputbox>default={{{1}}}</inputbox> 39214 wikitext text/x-wiki {| class="wikitable" style="float:right;" |- ! Name | <code>{{{1}}}</code><br>[[:Category:Wiktionary users|{{{2}}}]] |- ! [[mw:Manual:User rights|Rights]] | [[Special:ListGroupRights#{{{1}}}|Special:ListGroupRights]] |- ! Members | [[Special:ListUsers/{{{1}}}|Special:ListUsers]] |- ! Change log | [[Special:Log/rights]] |- | colspan="2" style="text-align: center;" | {{#switch:{{{1}}}<!-- -->|flood=<!-- -->[[Wiktionary:Requests for flood flag|Nomination page]]<!-- -->|patroller|autopatrolled=<!-- -->[[Wiktionary:Whitelist|Nomination page]]<!-- -->|steward=<!-- -->[[meta:Stewards/Elections|Nomination page]]<!-- -->|ipblock-exempt=<!-- redirect, Wiktionary:Beer_parlour/2019/April#Blocked_on_the_Russian_Wikipedia -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions#Requests_for_global_IP_block_exemption|global]] steward<!-- -->|no-ipinfo<!-- -->|transwiki<!-- meta:Help:Import#Assignation_of_transwiki_import_rights -->|push-subscription-manager=<!-- undescribed -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions|global]] steward<!-- -->|sysop|bureaucrat|checkuser|bot=<!-- --><inputbox> type=create default=User:USERNAME for {{#switch:{{{1}}}|sysop=admin|bot=bot status|#default={{{1}}}}} editintro=Template:vote-{{{1}}}-intro preload=Template:vote-{{{1}}} prefix=Wiktionary:Votes/{{#switch:{{{1}}}|sysop=sy|bureaucrat=bc|checkuser=cu|bot=bt}}-{{CURRENTYEAR}}-{{CURRENTMONTH}} break=no buttonlabel=Nominate width=32 </inputbox><!-- --// DEFAULT //---------------------------------------------------- -->|rollbacker=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for rollbacker group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|extendedmover=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for extendedmover group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|templateeditor=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for templateeditor group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|confirmed=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for confirmed group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|interface-admin=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for interface-admin group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|suppress=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for suppress group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|accountcreator=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for accountcreator group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|import=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for import group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|push-subscription-manager=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for push-subscription-manager group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|#default=<!-- // specified |rollbacker|extendedmover|templateeditor // unspecified |confirmed|interface-admin|suppress |accountcreator // redirect // redirect |import // Wiktionary:Beer_parlour/2009/March#Request_for_importer_flag // empty |push-subscription-manager --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for {{{1|GROUPNAME}}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->}} |- ! Your groups | [[Special:UserRights/USERNAME|Special:UserRights]] / [[Special:Preferences|Preferences]] |- ! Group list | [[Special:ListGroupRights|Local]], [[meta:Special:GlobalGroupPermissions|Global]] |}<!-- --><includeonly>[[Category:Wiktionary users|{{{2}}}]]</includeonly><!-- --><noinclude>[[Category:Navigation templates]]</noinclude> n14yrnfwagupc84rzpjpey9bte3cu8s 39215 39214 2022-09-08T16:39:38Z Useigor 1343 -Category:Wiktionary users (redundant) 39215 wikitext text/x-wiki {| class="wikitable" style="float:right;" |- ! Name | <code>{{{1}}}</code><br>{{{2}}} |- ! [[mw:Manual:User rights|Rights]] | [[Special:ListGroupRights#{{{1}}}|Special:ListGroupRights]] |- ! Members | [[Special:ListUsers/{{{1}}}|Special:ListUsers]] |- ! Change log | [[Special:Log/rights]] |- | colspan="2" style="text-align: center;" | {{#switch:{{{1}}}<!-- -->|flood=<!-- -->[[Wiktionary:Requests for flood flag|Nomination page]]<!-- -->|patroller|autopatrolled=<!-- -->[[Wiktionary:Whitelist|Nomination page]]<!-- -->|steward=<!-- -->[[meta:Stewards/Elections|Nomination page]]<!-- -->|ipblock-exempt=<!-- redirect, Wiktionary:Beer_parlour/2019/April#Blocked_on_the_Russian_Wikipedia -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions#Requests_for_global_IP_block_exemption|global]] steward<!-- -->|no-ipinfo<!-- -->|transwiki<!-- meta:Help:Import#Assignation_of_transwiki_import_rights -->|push-subscription-manager=<!-- undescribed -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions|global]] steward<!-- -->|sysop|bureaucrat|checkuser|bot=<!-- --><inputbox> type=create default=User:USERNAME for {{#switch:{{{1}}}|sysop=admin|bot=bot status|#default={{{1}}}}} editintro=Template:vote-{{{1}}}-intro preload=Template:vote-{{{1}}} prefix=Wiktionary:Votes/{{#switch:{{{1}}}|sysop=sy|bureaucrat=bc|checkuser=cu|bot=bt}}-{{CURRENTYEAR}}-{{CURRENTMONTH}} break=no buttonlabel=Nominate width=32 </inputbox><!-- --// DEFAULT //---------------------------------------------------- -->|rollbacker=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for rollbacker group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|extendedmover=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for extendedmover group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|templateeditor=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for templateeditor group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|confirmed=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for confirmed group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|interface-admin=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for interface-admin group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|suppress=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for suppress group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|accountcreator=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for accountcreator group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|import=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for import group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|push-subscription-manager=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for push-subscription-manager group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|#default=<!-- // specified |rollbacker|extendedmover|templateeditor // unspecified |confirmed|interface-admin|suppress |accountcreator // redirect // redirect |import // Wiktionary:Beer_parlour/2009/March#Request_for_importer_flag // empty |push-subscription-manager --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for {{{1|GROUPNAME}}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->}} |- ! Your groups | [[Special:UserRights/USERNAME|Special:UserRights]] / [[Special:Preferences|Preferences]] |- ! Group list | [[Special:ListGroupRights|Local]], [[meta:Special:GlobalGroupPermissions|Global]] |}<!-- --><includeonly>[[Category:Wiktionary users|{{{2}}}]]</includeonly><!-- --><noinclude>[[Category:Navigation templates]]</noinclude> 4zjjssro4e08s6a33c9ay2lfc0bi8kj 39216 39215 2022-09-08T16:41:19Z Useigor 1343 39216 wikitext text/x-wiki {| class="wikitable" style="float:right;" |- |+ User group |- ! Name | <code>{{{1}}}</code><br>{{{2}}} |- ! [[mw:Manual:User rights|Rights]] | [[Special:ListGroupRights#{{{1}}}|Special:ListGroupRights]] |- ! Members | [[Special:ListUsers/{{{1}}}|Special:ListUsers]] |- ! Change log | [[Special:Log/rights]] |- | colspan="2" style="text-align: center;" | {{#switch:{{{1}}}<!-- -->|flood=<!-- -->[[Wiktionary:Requests for flood flag|Nomination page]]<!-- -->|patroller|autopatrolled=<!-- -->[[Wiktionary:Whitelist|Nomination page]]<!-- -->|steward=<!-- -->[[meta:Stewards/Elections|Nomination page]]<!-- -->|ipblock-exempt=<!-- redirect, Wiktionary:Beer_parlour/2019/April#Blocked_on_the_Russian_Wikipedia -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions#Requests_for_global_IP_block_exemption|global]] steward<!-- -->|no-ipinfo<!-- -->|transwiki<!-- meta:Help:Import#Assignation_of_transwiki_import_rights -->|push-subscription-manager=<!-- undescribed -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions|global]] steward<!-- -->|sysop|bureaucrat|checkuser|bot=<!-- --><inputbox> type=create default=User:USERNAME for {{#switch:{{{1}}}|sysop=admin|bot=bot status|#default={{{1}}}}} editintro=Template:vote-{{{1}}}-intro preload=Template:vote-{{{1}}} prefix=Wiktionary:Votes/{{#switch:{{{1}}}|sysop=sy|bureaucrat=bc|checkuser=cu|bot=bt}}-{{CURRENTYEAR}}-{{CURRENTMONTH}} break=no buttonlabel=Nominate width=32 </inputbox><!-- --// DEFAULT //---------------------------------------------------- -->|rollbacker=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for rollbacker group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|extendedmover=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for extendedmover group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|templateeditor=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for templateeditor group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|confirmed=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for confirmed group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|interface-admin=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for interface-admin group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|suppress=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for suppress group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|accountcreator=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for accountcreator group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|import=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for import group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|push-subscription-manager=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for push-subscription-manager group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|#default=<!-- // specified |rollbacker|extendedmover|templateeditor // unspecified |confirmed|interface-admin|suppress |accountcreator // redirect // redirect |import // Wiktionary:Beer_parlour/2009/March#Request_for_importer_flag // empty |push-subscription-manager --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for {{{1|GROUPNAME}}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->}} |- ! Your groups | [[Special:UserRights/USERNAME|Special:UserRights]] / [[Special:Preferences|Preferences]] |- ! Group list | [[Special:ListGroupRights|Local]], [[meta:Special:GlobalGroupPermissions|Global]] |}<!-- --><includeonly>[[Category:Wiktionary users|{{{2}}}]]</includeonly><!-- --><noinclude>[[Category:Navigation templates]]</noinclude> 47w2tnooc4kdave44o41wzcr8b8i6ml 39217 39216 2022-09-08T16:47:37Z Useigor 1343 ++CSS (clear:right;) 39217 wikitext text/x-wiki {| class="wikitable" style="clear: right; float:right;" |- |+ User group |- ! Name | <code>{{{1}}}</code><br>{{{2}}} |- ! [[mw:Manual:User rights|Rights]] | [[Special:ListGroupRights#{{{1}}}|Special:ListGroupRights]] |- ! Members | [[Special:ListUsers/{{{1}}}|Special:ListUsers]] |- ! Change log | [[Special:Log/rights]] |- | colspan="2" style="text-align: center;" | {{#switch:{{{1}}}<!-- -->|flood=<!-- -->[[Wiktionary:Requests for flood flag|Nomination page]]<!-- -->|patroller|autopatrolled=<!-- -->[[Wiktionary:Whitelist|Nomination page]]<!-- -->|steward=<!-- -->[[meta:Stewards/Elections|Nomination page]]<!-- -->|ipblock-exempt=<!-- redirect, Wiktionary:Beer_parlour/2019/April#Blocked_on_the_Russian_Wikipedia -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions#Requests_for_global_IP_block_exemption|global]] steward<!-- -->|no-ipinfo<!-- -->|transwiki<!-- meta:Help:Import#Assignation_of_transwiki_import_rights -->|push-subscription-manager=<!-- undescribed -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions|global]] steward<!-- -->|sysop|bureaucrat|checkuser|bot=<!-- --><inputbox> type=create default=User:USERNAME for {{#switch:{{{1}}}|sysop=admin|bot=bot status|#default={{{1}}}}} editintro=Template:vote-{{{1}}}-intro preload=Template:vote-{{{1}}} prefix=Wiktionary:Votes/{{#switch:{{{1}}}|sysop=sy|bureaucrat=bc|checkuser=cu|bot=bt}}-{{CURRENTYEAR}}-{{CURRENTMONTH}} break=no buttonlabel=Nominate width=32 </inputbox><!-- --// DEFAULT //---------------------------------------------------- -->|rollbacker=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for rollbacker group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|extendedmover=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for extendedmover group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|templateeditor=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for templateeditor group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|confirmed=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for confirmed group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|interface-admin=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for interface-admin group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|suppress=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for suppress group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|accountcreator=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for accountcreator group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|import=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for import group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|push-subscription-manager=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for push-subscription-manager group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|#default=<!-- // specified |rollbacker|extendedmover|templateeditor // unspecified |confirmed|interface-admin|suppress |accountcreator // redirect // redirect |import // Wiktionary:Beer_parlour/2009/March#Request_for_importer_flag // empty |push-subscription-manager --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for {{{1|GROUPNAME}}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->}} |- ! Your groups | [[Special:UserRights/USERNAME|Special:UserRights]] / [[Special:Preferences|Preferences]] |- ! Group list | [[Special:ListGroupRights|Local]], [[meta:Special:GlobalGroupPermissions|Global]] |}<!-- --><includeonly>[[Category:Wiktionary users|{{{2}}}]]</includeonly><!-- --><noinclude>[[Category:Navigation templates]]</noinclude> t0l9cg6aocmp0hhadt0vxnz6zeo55fg 39218 39217 2022-09-08T16:56:06Z Useigor 1343 +[[mw:Help:Magic words|NUMBERINGROUP]] 39218 wikitext text/x-wiki {| class="wikitable" style="clear: right; float:right;" |- |+ User group |- ! Name | <code>{{{1}}}</code><br>{{{2}}} |- ! [[mw:Manual:User rights|Rights]] | [[Special:ListGroupRights#{{{1}}}|Special:ListGroupRights]] |- ! Members ({{NUMBERINGROUP:{{{1}}}}}) | [[Special:ListUsers/{{{1}}}|Special:ListUsers]] |- ! Change log | [[Special:Log/rights]] |- | colspan="2" style="text-align: center;" | {{#switch:{{{1}}}<!-- -->|flood=<!-- -->[[Wiktionary:Requests for flood flag|Nomination page]]<!-- -->|patroller|autopatrolled=<!-- -->[[Wiktionary:Whitelist|Nomination page]]<!-- -->|steward=<!-- -->[[meta:Stewards/Elections|Nomination page]]<!-- -->|ipblock-exempt=<!-- redirect, Wiktionary:Beer_parlour/2019/April#Blocked_on_the_Russian_Wikipedia -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions#Requests_for_global_IP_block_exemption|global]] steward<!-- -->|no-ipinfo<!-- -->|transwiki<!-- meta:Help:Import#Assignation_of_transwiki_import_rights -->|push-subscription-manager=<!-- undescribed -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions|global]] steward<!-- -->|sysop|bureaucrat|checkuser|bot=<!-- --><inputbox> type=create default=User:USERNAME for {{#switch:{{{1}}}|sysop=admin|bot=bot status|#default={{{1}}}}} editintro=Template:vote-{{{1}}}-intro preload=Template:vote-{{{1}}} prefix=Wiktionary:Votes/{{#switch:{{{1}}}|sysop=sy|bureaucrat=bc|checkuser=cu|bot=bt}}-{{CURRENTYEAR}}-{{CURRENTMONTH}} break=no buttonlabel=Nominate width=32 </inputbox><!-- --// DEFAULT //---------------------------------------------------- -->|rollbacker=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for rollbacker group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|extendedmover=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for extendedmover group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|templateeditor=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for templateeditor group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|confirmed=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for confirmed group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|interface-admin=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for interface-admin group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|suppress=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for suppress group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|accountcreator=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for accountcreator group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|import=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for import group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|push-subscription-manager=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for push-subscription-manager group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|#default=<!-- // specified |rollbacker|extendedmover|templateeditor // unspecified |confirmed|interface-admin|suppress |accountcreator // redirect // redirect |import // Wiktionary:Beer_parlour/2009/March#Request_for_importer_flag // empty |push-subscription-manager --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for {{{1|GROUPNAME}}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->}} |- ! Your groups | [[Special:UserRights/USERNAME|Special:UserRights]] / [[Special:Preferences|Preferences]] |- ! Group list | [[Special:ListGroupRights|Local]], [[meta:Special:GlobalGroupPermissions|Global]] |}<!-- --><includeonly>[[Category:Wiktionary users|{{{2}}}]]</includeonly><!-- --><noinclude>[[Category:Navigation templates]]</noinclude> qtgm54w3xpkl0b4rb2x9bibaeivechd 39219 39218 2022-09-08T18:07:55Z Useigor 1343 {{{1}}} in sysop, bureaucrat, checkuser, bot 39219 wikitext text/x-wiki {| class="wikitable" style="clear: right; float:right;" |- |+ User group |- ! Name | <code>{{{1}}}</code><br>{{{2}}} |- ! [[mw:Manual:User rights|Rights]] | [[Special:ListGroupRights#{{{1}}}|Special:ListGroupRights]] |- ! Members ({{NUMBERINGROUP:{{{1}}}}}) | [[Special:ListUsers/{{{1}}}|Special:ListUsers]] |- ! Change log | [[Special:Log/rights]] |- | colspan="2" style="text-align: center;" | {{#switch:{{{1}}}<!-- -->|flood=<!-- -->[[Wiktionary:Requests for flood flag|Nomination page]]<!-- -->|patroller|autopatrolled=<!-- -->[[Wiktionary:Whitelist|Nomination page]]<!-- -->|steward=<!-- -->[[meta:Stewards/Elections|Nomination page]]<!-- -->|ipblock-exempt=<!-- redirect, Wiktionary:Beer_parlour/2019/April#Blocked_on_the_Russian_Wikipedia -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions#Requests_for_global_IP_block_exemption|global]] steward<!-- -->|no-ipinfo<!-- -->|transwiki<!-- meta:Help:Import#Assignation_of_transwiki_import_rights -->|push-subscription-manager=<!-- undescribed -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions|global]] steward<!-- -->|sysop=<!-- --><inputbox> type=create default=User:USERNAME for admin editintro=Template:vote-sysop-intro preload=Template:vote-sysop prefix=Wiktionary:Votes/sy-{{CURRENTYEAR}}-{{CURRENTMONTH}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|bureaucrat=<!-- --><inputbox> type=create default=User:USERNAME for bureaucrat editintro=Template:vote-bureaucrat-intro preload=Template:vote-bureaucrat prefix=Wiktionary:Votes/bc-{{CURRENTYEAR}}-{{CURRENTMONTH}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|checkuser=<!-- --><inputbox> type=create default=User:USERNAME for checkuser editintro=Template:vote-checkuser-intro preload=Template:vote-checkuser prefix=Wiktionary:Votes/cu-{{CURRENTYEAR}}-{{CURRENTMONTH}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|bot=<!-- --><inputbox> type=create default=User:USERNAME for bot status editintro=Template:vote-bot-intro preload=Template:vote-bot prefix=Wiktionary:Votes/bt-{{CURRENTYEAR}}-{{CURRENTMONTH}} break=no buttonlabel=Nominate width=32 </inputbox><!-- --// DEFAULT //---------------------------------------------------- -->|rollbacker=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for rollbacker group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|extendedmover=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for extendedmover group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|templateeditor=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for templateeditor group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|confirmed=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for confirmed group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|interface-admin=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for interface-admin group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|suppress=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for suppress group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|accountcreator=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for accountcreator group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|import=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for import group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|push-subscription-manager=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for push-subscription-manager group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|#default=<!-- // specified |rollbacker|extendedmover|templateeditor // unspecified |confirmed|interface-admin|suppress |accountcreator // redirect // redirect |import // Wiktionary:Beer_parlour/2009/March#Request_for_importer_flag // empty |push-subscription-manager --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for {{{1|GROUPNAME}}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->}} |- ! Your groups | [[Special:UserRights/USERNAME|Special:UserRights]] / [[Special:Preferences|Preferences]] |- ! Group list | [[Special:ListGroupRights|Local]], [[meta:Special:GlobalGroupPermissions|Global]] |}<!-- --><includeonly>[[Category:Wiktionary users|{{{2}}}]]</includeonly><!-- --><noinclude>[[Category:Navigation templates]]</noinclude> gvfdpp6k9out2gynl9xuetz4346tlgi 39220 39219 2022-09-08T18:09:51Z Useigor 1343 "/" to preifx 39220 wikitext text/x-wiki {| class="wikitable" style="clear: right; float:right;" |- |+ User group |- ! Name | <code>{{{1}}}</code><br>{{{2}}} |- ! [[mw:Manual:User rights|Rights]] | [[Special:ListGroupRights#{{{1}}}|Special:ListGroupRights]] |- ! Members ({{NUMBERINGROUP:{{{1}}}}}) | [[Special:ListUsers/{{{1}}}|Special:ListUsers]] |- ! Change log | [[Special:Log/rights]] |- | colspan="2" style="text-align: center;" | {{#switch:{{{1}}}<!-- -->|flood=<!-- -->[[Wiktionary:Requests for flood flag|Nomination page]]<!-- -->|patroller|autopatrolled=<!-- -->[[Wiktionary:Whitelist|Nomination page]]<!-- -->|steward=<!-- -->[[meta:Stewards/Elections|Nomination page]]<!-- -->|ipblock-exempt=<!-- redirect, Wiktionary:Beer_parlour/2019/April#Blocked_on_the_Russian_Wikipedia -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions#Requests_for_global_IP_block_exemption|global]] steward<!-- -->|no-ipinfo<!-- -->|transwiki<!-- meta:Help:Import#Assignation_of_transwiki_import_rights -->|push-subscription-manager=<!-- undescribed -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions|global]] steward<!-- -->|sysop=<!-- --><inputbox> type=create default=User:USERNAME for admin editintro=Template:vote-sysop-intro preload=Template:vote-sysop prefix=Wiktionary:Votes/sy-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|bureaucrat=<!-- --><inputbox> type=create default=User:USERNAME for bureaucrat editintro=Template:vote-bureaucrat-intro preload=Template:vote-bureaucrat prefix=Wiktionary:Votes/bc-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|checkuser=<!-- --><inputbox> type=create default=User:USERNAME for checkuser editintro=Template:vote-checkuser-intro preload=Template:vote-checkuser prefix=Wiktionary:Votes/cu-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|bot=<!-- --><inputbox> type=create default=User:USERNAME for bot status editintro=Template:vote-bot-intro preload=Template:vote-bot prefix=Wiktionary:Votes/bt-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- --// DEFAULT //---------------------------------------------------- -->|rollbacker=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for rollbacker group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|extendedmover=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for extendedmover group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|templateeditor=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for templateeditor group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|confirmed=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for confirmed group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|interface-admin=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for interface-admin group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|suppress=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for suppress group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|accountcreator=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for accountcreator group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|import=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for import group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|push-subscription-manager=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for push-subscription-manager group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|#default=<!-- // specified |rollbacker|extendedmover|templateeditor // unspecified |confirmed|interface-admin|suppress |accountcreator // redirect // redirect |import // Wiktionary:Beer_parlour/2009/March#Request_for_importer_flag // empty |push-subscription-manager --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for {{{1|GROUPNAME}}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->}} |- ! Your groups | [[Special:UserRights/USERNAME|Special:UserRights]] / [[Special:Preferences|Preferences]] |- ! Group list | [[Special:ListGroupRights|Local]], [[meta:Special:GlobalGroupPermissions|Global]] |}<!-- --><includeonly>[[Category:Wiktionary users|{{{2}}}]]</includeonly><!-- --><noinclude>[[Category:Navigation templates]]</noinclude> q5hppwdvsxbefr8gqu8q72h8ekjwqcx 39221 39220 2022-09-08T18:27:58Z Useigor 1343 +autoconfirmed 39221 wikitext text/x-wiki {| class="wikitable" style="clear: right; float:right;" |- |+ User group |- ! Name | <code>{{{1}}}</code><br>{{{2}}} |- ! [[mw:Manual:User rights|Rights]] | [[Special:ListGroupRights#{{{1}}}|Special:ListGroupRights]] |- ! Members ({{NUMBERINGROUP:{{{1}}}}}) | [[Special:ListUsers/{{{1}}}|Special:ListUsers]] |- ! Change log | [[Special:Log/rights]] |- | colspan="2" style="text-align: center;" | {{#switch:{{{1}}}<!-- -->|autoconfirmed=<!-- -->[[Wikipedia:User_access_levels#Autoconfirmed_and_confirmed_users|Granted automatically]]<!-- -->|flood=<!-- -->[[Wiktionary:Requests for flood flag|Nomination page]]<!-- -->|patroller|autopatrolled=<!-- -->[[Wiktionary:Whitelist|Nomination page]]<!-- -->|steward=<!-- -->[[meta:Stewards/Elections|Nomination page]]<!-- -->|ipblock-exempt=<!-- redirect, Wiktionary:Beer_parlour/2019/April#Blocked_on_the_Russian_Wikipedia -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions#Requests_for_global_IP_block_exemption|global]] steward<!-- -->|no-ipinfo<!-- -->|transwiki<!-- meta:Help:Import#Assignation_of_transwiki_import_rights -->|push-subscription-manager=<!-- undescribed -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions|global]] steward<!-- -->|sysop=<!-- --><inputbox> type=create default=User:USERNAME for admin editintro=Template:vote-sysop-intro preload=Template:vote-sysop prefix=Wiktionary:Votes/sy-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|bureaucrat=<!-- --><inputbox> type=create default=User:USERNAME for bureaucrat editintro=Template:vote-bureaucrat-intro preload=Template:vote-bureaucrat prefix=Wiktionary:Votes/bc-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|checkuser=<!-- --><inputbox> type=create default=User:USERNAME for checkuser editintro=Template:vote-checkuser-intro preload=Template:vote-checkuser prefix=Wiktionary:Votes/cu-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|bot=<!-- --><inputbox> type=create default=User:USERNAME for bot status editintro=Template:vote-bot-intro preload=Template:vote-bot prefix=Wiktionary:Votes/bt-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- --// DEFAULT //---------------------------------------------------- -->|rollbacker=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for rollbacker group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|extendedmover=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for extendedmover group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|templateeditor=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for templateeditor group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|confirmed=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for confirmed group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|interface-admin=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for interface-admin group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|suppress=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for suppress group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|accountcreator=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for accountcreator group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|import=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for import group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|push-subscription-manager=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for push-subscription-manager group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|#default=<!-- // specified |rollbacker|extendedmover|templateeditor // unspecified |confirmed|interface-admin|suppress |accountcreator // redirect // redirect |import // Wiktionary:Beer_parlour/2009/March#Request_for_importer_flag // empty |push-subscription-manager --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for {{{1|GROUPNAME}}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->}} |- ! Your groups | [[Special:UserRights/USERNAME|Special:UserRights]] / [[Special:Preferences|Preferences]] |- ! Group list | [[Special:ListGroupRights|Local]], [[meta:Special:GlobalGroupPermissions|Global]] |}<!-- --><includeonly>[[Category:Wiktionary users|{{{2}}}]]</includeonly><!-- --><noinclude>[[Category:Navigation templates]]</noinclude> niauqm640krwmbuy1n035lo4lxsh2o6 39222 39221 2022-09-09T17:01:12Z Useigor 1343 ++link 39222 wikitext text/x-wiki {| class="wikitable" style="clear: right; float:right;" |- |+ [[phabricator:source/mediawiki-config/browse/master/wmf-config/InitialiseSettings.php|User group]] <!-- https://gerrit.wikimedia.org/r/plugins/gitiles/operations/mediawiki-config/+log/refs/heads/master/wmf-config/InitialiseSettings.php https://gerrit.wikimedia.org/r/q/project:operations%252Fmediawiki-config https://codesearch.wmcloud.org/search/?q=user%20group&files=wmf-config%2FInitialiseSettings.php https://www.mediawiki.org/wiki/Help:User_rights_and_groups --> |- ! Name | <code>{{{1}}}</code><br>{{{2}}} |- ! [[mw:Manual:User rights|Rights]] | [[Special:ListGroupRights#{{{1}}}|Special:ListGroupRights]] |- ! [[Special:Statistics|Members ({{NUMBERINGROUP:{{{1}}}}})]] | [[Special:ListUsers/{{{1}}}|All]], [https://en.wiktionary.org/wiki/Special:ActiveUsers?groups={{{1}}} Active] |- ! Change log | [[Special:Log/rights]] |- | colspan="2" style="text-align: center;" | {{#switch:{{{1}}}<!-- -->|autoconfirmed=<!-- -->[[Wikipedia:User_access_levels#Autoconfirmed_and_confirmed_users|Granted automatically]]<!-- -->|flood=<!-- -->[[Wiktionary:Requests for flood flag|Nomination page]]<!-- -->|patroller|autopatrolled=<!-- -->[[Wiktionary:Whitelist|Nomination page]]<!-- -->|steward=<!-- -->[[meta:Stewards/Elections|Nomination page]]<!-- -->|ipblock-exempt=<!-- redirect, Wiktionary:Beer_parlour/2019/April#Blocked_on_the_Russian_Wikipedia -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions#Requests_for_global_IP_block_exemption|global]] steward<!-- -->|no-ipinfo<!-- -->|transwiki<!-- meta:Help:Import#Assignation_of_transwiki_import_rights -->|push-subscription-manager=<!-- undescribed -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions|global]] steward<!-- // Wiktionary:Votes // -->|sysop=<!-- --><inputbox> type=create default=User:USERNAME for admin editintro=Template:vote-sysop-intro preload=Template:vote-sysop prefix=Wiktionary:Votes/sy-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|bureaucrat=<!-- --><inputbox> type=create default=User:USERNAME for bureaucrat editintro=Template:vote-bureaucrat-intro preload=Template:vote-bureaucrat prefix=Wiktionary:Votes/bc-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|checkuser=<!-- --><inputbox> type=create default=User:USERNAME for checkuser editintro=Template:vote-checkuser-intro preload=Template:vote-checkuser prefix=Wiktionary:Votes/cu-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|bot=<!-- --><inputbox> type=create default=User:USERNAME for bot status editintro=Template:vote-bot-intro preload=Template:vote-bot prefix=Wiktionary:Votes/bt-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- --// DEFAULT (could be) //---------------------------------------------------- // specified nomination page // -->|rollbacker=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for rollbacker group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|extendedmover=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for extendedmover group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|templateeditor=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for templateeditor group break=no buttonlabel=Nominate width=32 </inputbox><!-- // unspecified nomination page // -->|confirmed=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for confirmed group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|interface-admin=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for interface-admin group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|suppress=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for suppress group break=no buttonlabel=Nominate width=32 </inputbox><!-- // redirect page // -->|accountcreator=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for accountcreator group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|import=<!-- Wiktionary:Beer_parlour/2009/March#Request_for_importer_flag --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for import group break=no buttonlabel=Nominate width=32 </inputbox><!-- // empty page // -->|push-subscription-manager=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for push-subscription-manager group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|#default=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for {{{1|GROUPNAME}}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->}} |- ! [[Special:Preferences|Your groups]] | [[Special:UserRights/USERNAME|Local]], [[Special:GlobalUserRights/USERNAME|Global]] |- ! Group list | [[Special:ListGroupRights|Local]], [[toolforge:meta/globalgroups|Global]] |}<!-- --><includeonly>[[Category:Wiktionary users|{{{2}}}]]</includeonly><!-- --><noinclude>[[Category:Navigation templates]]</noinclude> kikxq4739jhn3ppazn7u0v18jkhidy4 39223 39222 2022-09-10T11:19:16Z Useigor 1343 39223 wikitext text/x-wiki {| class="wikitable" style="clear: right; float:right;" |- |+ [https://noc.wikimedia.org/conf/highlight.php?file=InitialiseSettings.php User group] <!-- https://noc.wikimedia.org/conf/highlight.php?file=interwiki.php https://www.mediawiki.org/wiki/Help:User_rights_and_groups --> |- ! Name | <code>{{{1}}}</code><br>{{{2}}} |- ! [[mw:Manual:User rights|Rights]] | [[Special:ListGroupRights#{{{1}}}|Special:ListGroupRights]] |- ! [[Special:Statistics|Members ({{NUMBERINGROUP:{{{1}}}}})]] | [[Special:ListUsers/{{{1}}}|All]], [{{fullurl:Special:ActiveUsers|groups={{{1}}}}} Active] |- ! Change log | [[Special:Log/rights]] |- | colspan="2" style="text-align: center;" | {{#switch:{{{1}}}<!-- -->|autoconfirmed=<!-- -->[[Wikipedia:User_access_levels#Autoconfirmed_and_confirmed_users|Granted automatically]]<!-- -->|flood=<!-- -->[[Wiktionary:Requests for flood flag|Nomination page]]<!-- -->|patroller|autopatrolled=<!-- -->[[Wiktionary:Whitelist|Nomination page]]<!-- -->|steward=<!-- -->[[meta:Stewards/Elections|Nomination page]]<!-- -->|ipblock-exempt=<!-- redirect, Wiktionary:Beer_parlour/2019/April#Blocked_on_the_Russian_Wikipedia -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions#Requests_for_global_IP_block_exemption|global]] steward<!-- -->|no-ipinfo<!-- -->|transwiki<!-- meta:Help:Import#Assignation_of_transwiki_import_rights -->|push-subscription-manager=<!-- undescribed -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions|global]] steward<!-- // Wiktionary:Votes // -->|sysop=<!-- --><inputbox> type=create default=User:USERNAME for admin editintro=Template:vote-sysop-intro preload=Template:vote-sysop prefix=Wiktionary:Votes/sy-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|bureaucrat=<!-- --><inputbox> type=create default=User:USERNAME for bureaucrat editintro=Template:vote-bureaucrat-intro preload=Template:vote-bureaucrat prefix=Wiktionary:Votes/bc-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|checkuser=<!-- --><inputbox> type=create default=User:USERNAME for checkuser editintro=Template:vote-checkuser-intro preload=Template:vote-checkuser prefix=Wiktionary:Votes/cu-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|bot=<!-- --><inputbox> type=create default=User:USERNAME for bot status editintro=Template:vote-bot-intro preload=Template:vote-bot prefix=Wiktionary:Votes/bt-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- --// DEFAULT (could be) //---------------------------------------------------- // specified nomination page // -->|rollbacker=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for rollbacker group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|extendedmover=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for extendedmover group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|templateeditor=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for templateeditor group break=no buttonlabel=Nominate width=32 </inputbox><!-- // unspecified nomination page // -->|confirmed=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for confirmed group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|interface-admin=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for interface-admin group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|suppress=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for suppress group break=no buttonlabel=Nominate width=32 </inputbox><!-- // redirect page // -->|accountcreator=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for accountcreator group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|import=<!-- Wiktionary:Beer_parlour/2009/March#Request_for_importer_flag --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for import group break=no buttonlabel=Nominate width=32 </inputbox><!-- // empty page // -->|push-subscription-manager=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for push-subscription-manager group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|#default=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for {{{1|GROUPNAME}}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->}} |- ! [[Special:Preferences|Your groups]] | [[Special:UserRights/USERNAME|Local]], [[Special:GlobalUserRights/USERNAME|Global]] |- ! Group list | [[Special:ListGroupRights|Local]], [[toolforge:meta/globalgroups|Global]] |}<!-- --><includeonly>[[Category:Wiktionary users|{{{2}}}]]</includeonly><!-- --><noinclude>[[Category:Navigation templates]]</noinclude> hdmcnk1sd8vxzmcvmf5spux27qvguwk 39224 39223 2024-01-22T03:03:36Z 78.177.250.81 39224 wikitext text/x-wiki {| class="wikitable" style="clear: right; float:right;" |- |+ [https://noc.wikimedia.org/conf/highlight.php?file=InitialiseSettings.php User group] <!-- https://noc.wikimedia.org/conf/highlight.php?file=interwiki.php https://www.mediawiki.org/wiki/Help:User_rights_and_groups --> |- ! Name | <code>{{{1}}}</code><br>{{{2}}} |- ! [[mw:Manual:User rights|Rights]] | [[Special:ListGroupRights#{{{1}}}|Special:ListGroupRights]] |- ! [[Special:Statistics|Members ({{NUMBERINGROUP:{{{1}}}}})]] | [[Special:ListUsers/{{{1}}}|All]], [{{fullurl:Special:ActiveUsers|groups={{{1}}}}} Active] |- ! Change log | [[Special:Log/rights]] |- | colspan="2" style="text-align: center;" | {{#switch:{{{1}}}<!-- -->|autoconfirmed=<!-- -->[[Wikipedia:User_access_levels#Autoconfirmed_and_confirmed_users|Granted automatically]]<!-- -->|flood=<!-- -->[[Wiktionary:Requests for flood flag|Nomination page]]<!-- -->|patroller|autopatrolled=<!-- -->[[Wiktionary:Whitelist|Nomination page]]<!-- -->|steward=<!-- -->[[meta:Stewards/Elections|Nomination page]]<!-- -->|ipblock-exempt=<!-- redirect, Wiktionary:Beer_parlour/2019/April#Blocked_on_the_Russian_Wikipedia -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions#Requests_for_global_IP_block_exemption|global]] steward<!-- -->|no-ipinfo<!-- -->|transwiki<!-- meta:Help:Import#Assignation_of_transwiki_import_rights -->|push-subscription-manager=<!-- undescribed -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions|global]] steward<!-- // Wiktionary:Votes // -->|sysop=<!-- --><inputbox> type=create default=User:USERNAME for admin editintro=Template:vote-sysop-intro preload=Template:vote-sysop prefix=Wiktionary:Votes/sy-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|bureaucrat=<!-- --><inputbox> type=create default=User:USERNAME for bureaucrat editintro=Template:vote-bureaucrat-intro preload=Template:vote-bureaucrat prefix=Wiktionary:Votes/bc-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|checkuser=<!-- --><inputbox> type=create default=User:USERNAME for checkuser editintro=Template:vote-checkuser-intro preload=Template:vote-checkuser prefix=Wiktionary:Votes/cu-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|bot=<!-- --><inputbox> type=create default=User:USERNAME for bot status editintro=Template:vote-bot-intro preload=Template:vote-bot prefix=Wiktionary:Votes/bt-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- --// DEFAULT (could be) //---------------------------------------------------- // specified nomination page // -->|rollbacker=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for rollbacker group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|extendedmover=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for extendedmover group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|templateeditor=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for templateeditor group break=no buttonlabel=Nominate width=32 </inputbox><!-- // unspecified nomination page // -->|confirmed=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for confirmed group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|interface-admin=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for interface-admin group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|suppress=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for suppress group break=no buttonlabel=Nominate width=32 </inputbox><!-- // redirect page // -->|accountcreator=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for accountcreator group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|import=<!-- Wiktionary:Beer_parlour/2009/March#Request_for_importer_flag --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for import group break=no buttonlabel=Nominate width=32 </inputbox><!-- // empty page // -->|push-subscription-manager=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for push-subscription-manager group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|#default=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for {{{1|GROUPNAME}}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->}} |- ! [[Special:Preferences|Your groups]] | [[Special:UserRights/USERNAME|Local]], [[Special:GlobalUserRights/USERNAME|Global]] |- ! Group list | [[Special:ListGroupRights|Local]], [[toolforge:meta/globalgroups|Global]] |}<!-- --><includeonly>[[Category:Wiktionary usetoolforge:meta/globalgroups|Globalrs|{{{2}}}]]</includeonly><!-- --><noinclude>[[Category:Navigation templates]]</noinclude> f2hqfolma53j4ppfuksat38bq51xhxu 39225 39224 2024-01-22T05:44:28Z Svartava 428 Reverted edits by [[Special:Contributions/78.177.250.81|78.177.250.81]]; if you disagree with this rollback, please [[Special:NewSection/User talk:Svartava|leave a message]] on my talk-page. 39225 wikitext text/x-wiki {| class="wikitable" style="clear: right; float:right;" |- |+ [https://noc.wikimedia.org/conf/highlight.php?file=InitialiseSettings.php User group] <!-- https://noc.wikimedia.org/conf/highlight.php?file=interwiki.php https://www.mediawiki.org/wiki/Help:User_rights_and_groups --> |- ! Name | <code>{{{1}}}</code><br>{{{2}}} |- ! [[mw:Manual:User rights|Rights]] | [[Special:ListGroupRights#{{{1}}}|Special:ListGroupRights]] |- ! [[Special:Statistics|Members ({{NUMBERINGROUP:{{{1}}}}})]] | [[Special:ListUsers/{{{1}}}|All]], [{{fullurl:Special:ActiveUsers|groups={{{1}}}}} Active] |- ! Change log | [[Special:Log/rights]] |- | colspan="2" style="text-align: center;" | {{#switch:{{{1}}}<!-- -->|autoconfirmed=<!-- -->[[Wikipedia:User_access_levels#Autoconfirmed_and_confirmed_users|Granted automatically]]<!-- -->|flood=<!-- -->[[Wiktionary:Requests for flood flag|Nomination page]]<!-- -->|patroller|autopatrolled=<!-- -->[[Wiktionary:Whitelist|Nomination page]]<!-- -->|steward=<!-- -->[[meta:Stewards/Elections|Nomination page]]<!-- -->|ipblock-exempt=<!-- redirect, Wiktionary:Beer_parlour/2019/April#Blocked_on_the_Russian_Wikipedia -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions#Requests_for_global_IP_block_exemption|global]] steward<!-- -->|no-ipinfo<!-- -->|transwiki<!-- meta:Help:Import#Assignation_of_transwiki_import_rights -->|push-subscription-manager=<!-- undescribed -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions|global]] steward<!-- // Wiktionary:Votes // -->|sysop=<!-- --><inputbox> type=create default=User:USERNAME for admin editintro=Template:vote-sysop-intro preload=Template:vote-sysop prefix=Wiktionary:Votes/sy-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|bureaucrat=<!-- --><inputbox> type=create default=User:USERNAME for bureaucrat editintro=Template:vote-bureaucrat-intro preload=Template:vote-bureaucrat prefix=Wiktionary:Votes/bc-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|checkuser=<!-- --><inputbox> type=create default=User:USERNAME for checkuser editintro=Template:vote-checkuser-intro preload=Template:vote-checkuser prefix=Wiktionary:Votes/cu-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|bot=<!-- --><inputbox> type=create default=User:USERNAME for bot status editintro=Template:vote-bot-intro preload=Template:vote-bot prefix=Wiktionary:Votes/bt-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- --// DEFAULT (could be) //---------------------------------------------------- // specified nomination page // -->|rollbacker=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for rollbacker group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|extendedmover=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for extendedmover group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|templateeditor=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for templateeditor group break=no buttonlabel=Nominate width=32 </inputbox><!-- // unspecified nomination page // -->|confirmed=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for confirmed group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|interface-admin=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for interface-admin group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|suppress=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for suppress group break=no buttonlabel=Nominate width=32 </inputbox><!-- // redirect page // -->|accountcreator=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for accountcreator group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|import=<!-- Wiktionary:Beer_parlour/2009/March#Request_for_importer_flag --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for import group break=no buttonlabel=Nominate width=32 </inputbox><!-- // empty page // -->|push-subscription-manager=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for push-subscription-manager group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|#default=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for {{{1|GROUPNAME}}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->}} |- ! [[Special:Preferences|Your groups]] | [[Special:UserRights/USERNAME|Local]], [[Special:GlobalUserRights/USERNAME|Global]] |- ! Group list | [[Special:ListGroupRights|Local]], [[toolforge:meta/globalgroups|Global]] |}<!-- --><includeonly>[[Category:Wiktionary users|{{{2}}}]]</includeonly><!-- --><noinclude>[[Category:Navigation templates]]</noinclude> hdmcnk1sd8vxzmcvmf5spux27qvguwk 39226 39225 2025-09-21T13:00:03Z Emanuele6 1416 fix link to wikipedia 39226 wikitext text/x-wiki {| class="wikitable" style="clear: right; float:right;" |- |+ [https://noc.wikimedia.org/conf/highlight.php?file=InitialiseSettings.php User group] <!-- https://noc.wikimedia.org/conf/highlight.php?file=interwiki.php https://www.mediawiki.org/wiki/Help:User_rights_and_groups --> |- ! Name | <code>{{{1}}}</code><br>{{{2}}} |- ! [[mw:Manual:User rights|Rights]] | [[Special:ListGroupRights#{{{1}}}|Special:ListGroupRights]] |- ! [[Special:Statistics|Members ({{NUMBERINGROUP:{{{1}}}}})]] | [[Special:ListUsers/{{{1}}}|All]], [{{fullurl:Special:ActiveUsers|groups={{{1}}}}} Active] |- ! Change log | [[Special:Log/rights]] |- | colspan="2" style="text-align: center;" | {{#switch:{{{1}}}<!-- -->|autoconfirmed=<!-- -->[[w:Wikipedia:User_access_levels#Autoconfirmed_and_confirmed_users|Granted automatically]]<!-- -->|flood=<!-- -->[[Wiktionary:Requests for flood flag|Nomination page]]<!-- -->|patroller|autopatrolled=<!-- -->[[Wiktionary:Whitelist|Nomination page]]<!-- -->|steward=<!-- -->[[meta:Stewards/Elections|Nomination page]]<!-- -->|ipblock-exempt=<!-- redirect, Wiktionary:Beer_parlour/2019/April#Blocked_on_the_Russian_Wikipedia -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions#Requests_for_global_IP_block_exemption|global]] steward<!-- -->|no-ipinfo<!-- -->|transwiki<!-- meta:Help:Import#Assignation_of_transwiki_import_rights -->|push-subscription-manager=<!-- undescribed -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions|global]] steward<!-- // Wiktionary:Votes // -->|sysop=<!-- --><inputbox> type=create default=User:USERNAME for admin editintro=Template:vote-sysop-intro preload=Template:vote-sysop prefix=Wiktionary:Votes/sy-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|bureaucrat=<!-- --><inputbox> type=create default=User:USERNAME for bureaucrat editintro=Template:vote-bureaucrat-intro preload=Template:vote-bureaucrat prefix=Wiktionary:Votes/bc-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|checkuser=<!-- --><inputbox> type=create default=User:USERNAME for checkuser editintro=Template:vote-checkuser-intro preload=Template:vote-checkuser prefix=Wiktionary:Votes/cu-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|bot=<!-- --><inputbox> type=create default=User:USERNAME for bot status editintro=Template:vote-bot-intro preload=Template:vote-bot prefix=Wiktionary:Votes/bt-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- --// DEFAULT (could be) //---------------------------------------------------- // specified nomination page // -->|rollbacker=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for rollbacker group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|extendedmover=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for extendedmover group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|templateeditor=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for templateeditor group break=no buttonlabel=Nominate width=32 </inputbox><!-- // unspecified nomination page // -->|confirmed=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for confirmed group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|interface-admin=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for interface-admin group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|suppress=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for suppress group break=no buttonlabel=Nominate width=32 </inputbox><!-- // redirect page // -->|accountcreator=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for accountcreator group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|import=<!-- Wiktionary:Beer_parlour/2009/March#Request_for_importer_flag --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for import group break=no buttonlabel=Nominate width=32 </inputbox><!-- // empty page // -->|push-subscription-manager=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for push-subscription-manager group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|#default=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for {{{1|GROUPNAME}}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->}} |- ! [[Special:Preferences|Your groups]] | [[Special:UserRights/USERNAME|Local]], [[Special:GlobalUserRights/USERNAME|Global]] |- ! Group list | [[Special:ListGroupRights|Local]], [[toolforge:meta/globalgroups|Global]] |}<!-- --><includeonly>[[Category:Wiktionary users|{{{2}}}]]</includeonly><!-- --><noinclude>[[Category:Navigation templates]]</noinclude> fiwfcr510rl466jhdhgrmnyojccoro0 39227 39226 2026-05-26T10:44:55Z King ChristLike 964 15 revisions imported from [[:en:Template:user_group]] 39226 wikitext text/x-wiki {| class="wikitable" style="clear: right; float:right;" |- |+ [https://noc.wikimedia.org/conf/highlight.php?file=InitialiseSettings.php User group] <!-- https://noc.wikimedia.org/conf/highlight.php?file=interwiki.php https://www.mediawiki.org/wiki/Help:User_rights_and_groups --> |- ! Name | <code>{{{1}}}</code><br>{{{2}}} |- ! [[mw:Manual:User rights|Rights]] | [[Special:ListGroupRights#{{{1}}}|Special:ListGroupRights]] |- ! [[Special:Statistics|Members ({{NUMBERINGROUP:{{{1}}}}})]] | [[Special:ListUsers/{{{1}}}|All]], [{{fullurl:Special:ActiveUsers|groups={{{1}}}}} Active] |- ! Change log | [[Special:Log/rights]] |- | colspan="2" style="text-align: center;" | {{#switch:{{{1}}}<!-- -->|autoconfirmed=<!-- -->[[w:Wikipedia:User_access_levels#Autoconfirmed_and_confirmed_users|Granted automatically]]<!-- -->|flood=<!-- -->[[Wiktionary:Requests for flood flag|Nomination page]]<!-- -->|patroller|autopatrolled=<!-- -->[[Wiktionary:Whitelist|Nomination page]]<!-- -->|steward=<!-- -->[[meta:Stewards/Elections|Nomination page]]<!-- -->|ipblock-exempt=<!-- redirect, Wiktionary:Beer_parlour/2019/April#Blocked_on_the_Russian_Wikipedia -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions#Requests_for_global_IP_block_exemption|global]] steward<!-- -->|no-ipinfo<!-- -->|transwiki<!-- meta:Help:Import#Assignation_of_transwiki_import_rights -->|push-subscription-manager=<!-- undescribed -->ask [[Special:ListUsers/steward|local]]/[[meta:Steward requests/Global permissions|global]] steward<!-- // Wiktionary:Votes // -->|sysop=<!-- --><inputbox> type=create default=User:USERNAME for admin editintro=Template:vote-sysop-intro preload=Template:vote-sysop prefix=Wiktionary:Votes/sy-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|bureaucrat=<!-- --><inputbox> type=create default=User:USERNAME for bureaucrat editintro=Template:vote-bureaucrat-intro preload=Template:vote-bureaucrat prefix=Wiktionary:Votes/bc-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|checkuser=<!-- --><inputbox> type=create default=User:USERNAME for checkuser editintro=Template:vote-checkuser-intro preload=Template:vote-checkuser prefix=Wiktionary:Votes/cu-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|bot=<!-- --><inputbox> type=create default=User:USERNAME for bot status editintro=Template:vote-bot-intro preload=Template:vote-bot prefix=Wiktionary:Votes/bt-{{CURRENTYEAR}}-{{CURRENTMONTH}}/ break=no buttonlabel=Nominate width=32 </inputbox><!-- --// DEFAULT (could be) //---------------------------------------------------- // specified nomination page // -->|rollbacker=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for rollbacker group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|extendedmover=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for extendedmover group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|templateeditor=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for templateeditor group break=no buttonlabel=Nominate width=32 </inputbox><!-- // unspecified nomination page // -->|confirmed=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for confirmed group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|interface-admin=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for interface-admin group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|suppress=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for suppress group break=no buttonlabel=Nominate width=32 </inputbox><!-- // redirect page // -->|accountcreator=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for accountcreator group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|import=<!-- Wiktionary:Beer_parlour/2009/March#Request_for_importer_flag --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for import group break=no buttonlabel=Nominate width=32 </inputbox><!-- // empty page // -->|push-subscription-manager=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for push-subscription-manager group break=no buttonlabel=Nominate width=32 </inputbox><!-- -->|#default=<!-- --><inputbox> type=commenttitle page=Wiktionary:Beer parlour/{{CURRENTYEAR}}/{{CURRENTMONTHNAME}} default=User:USERNAME for {{{1|GROUPNAME}}} break=no buttonlabel=Nominate width=32 </inputbox><!-- -->}} |- ! [[Special:Preferences|Your groups]] | [[Special:UserRights/USERNAME|Local]], [[Special:GlobalUserRights/USERNAME|Global]] |- ! Group list | [[Special:ListGroupRights|Local]], [[toolforge:meta/globalgroups|Global]] |}<!-- --><includeonly>[[Category:Wiktionary users|{{{2}}}]]</includeonly><!-- --><noinclude>[[Category:Navigation templates]]</noinclude> fiwfcr510rl466jhdhgrmnyojccoro0 Wiktionary:Votes 4 6665 39228 2026-05-26T11:12:19Z King ChristLike 964 created page 39228 wikitext text/x-wiki {{information page}} {{shortcut|WT:VOTE|WT:VOTES|WT:V}} '''Votes''' formalize and document the consensus-building process and the decisions that the community makes. This page displays the full contents of recent, current and planned votes. See '''[[Wiktionary:Votes/Active]]''' to add new votes to the “active” list and remove old ones. Finished votes are added to '''[[Wiktionary:Votes/Timeline]]''', an organized archive of previous votes and their results, sorted by the vote end date. <inputbox> bgcolor = transparent type = fulltext prefix = Wiktionary:Votes break = no width = 50 searchbuttonlabel = Search past votes </inputbox> ==Creating a new vote== {{hatnote|For the policy, see [[Wiktionary:Voting policy]].}} {{hatnote|For a tutorial for creating a vote, see [[Help:Creating a vote]].}} {{warning | title = Before starting a new vote | text = Change “Title of vote” in associated the field to add a short description, or add the user to after “User:”. Once the vote is created, add it to the [[Wiktionary:Votes/Active|list of active votes]]. }} <div class="center"> {| border=1 style="border: solid 1px gray; border-collapse: collapse;" | colspan=2 style="vertical-align: top; padding-top: 0.5em" | <div class="center" style="padding-bottom: 0.5em"> <inputbox> type = create editintro = Template:vote-generic-intro preload = Template:vote-generic default = Wiktionary:Votes/{{CURRENTYEAR}}-{{CURRENTMONTH}}/Title of vote buttonlabel = Start a new vote! width = 60 </inputbox> </div> |- | style="vertical-align: top; padding-top: 0.5em" | <div class="center"> <inputbox> type = create editintro = Template:vote-sysop-intro preload = Template:vote-sysop default = Wiktionary:Votes/sy-{{CURRENTYEAR}}-{{CURRENTMONTH}}/User: for admin buttonlabel = Start a new Administrator vote! width = 50 </inputbox> Note: Update the vote list at [[WT:A]]. </div> | style="vertical-align: top; padding-top: 0.5em" | <div class="center"> <inputbox> type = create editintro = Template:vote-bureaucrat-intro preload = Template:vote-bureaucrat default = Wiktionary:Votes/bc-{{CURRENTYEAR}}-{{CURRENTMONTH}}/User: for bureaucrat buttonlabel = Start a new Bureaucrat vote! width = 50 </inputbox> Note: Update the vote list at [[WT:B]]. </div> |- | style="vertical-align: top; padding-top: 0.5em" | <div class="center"> <inputbox> type = create editintro = Template:vote-checkuser-intro preload = Template:vote-checkuser default = Wiktionary:Votes/cu-{{CURRENTYEAR}}-{{CURRENTMONTH}}/User: for checkuser buttonlabel = Start a new CheckUser vote! width = 50 </inputbox> Note: Update the vote list at [[WT:C]]. </div> | style="vertical-align: top; padding-top: 0.5em" | <div class="center"> <inputbox> type = create editintro = Template:vote-bot-intro preload = Template:vote-bot default = Wiktionary:Votes/bt-{{CURRENTYEAR}}-{{CURRENTMONTH}}/User: for bot status buttonlabel = Start a new Bot vote! width = 50 </inputbox> </div> |} </div> ===Routine clean-up=== For admins, periodically check for orphan votes at [[Wiktionary:Votes/]] for votes and voting templates, including templates for creation of new votes: * [[Special:PrefixIndex/Wiktionary:Votes|Pages starting with "Wiktionary:Votes"]]. * [[Special:PrefixIndex/Template:vote-|Pages starting with "Template:vote-"]]. ==Current and new votes== {{votes}} ==Proposed votes== The following are proposals for new votes, excluding nominations, in cases where the proposer of the vote prefers that the vote is written collaboratively, or where the vote appears to require substantial revision. If you have not created a passing vote yet, it is recommended that you use this section and actively solicit feedback by linking to your proposal in discussion; your vote may have a better chance of passing if it is first reviewed. Votes may linger here indefinitely. If changes in policy make a proposal irrelevant, the voting page will be requested for deletion. On the other hand, you do not have to be the creator to initiate one of the votes below. Place any votes with a live start date in the section above at least a few days before that start date arrives. ===Forthcoming votes=== {{#categorytree:Votes that have not been opened|mode=pages|hideroot=on}} [[Category:Wiktionary votes| ]] gmfl03cx0k9lax9tjhya5ick1aw3r7c