https://en.wikipedia.org/w/index.php?action=history&feed=atom&title=Module%3ADYK_checklist%2Fsandbox Module:DYK checklist/sandbox - Revision history 2025-06-25T08:09:31Z Revision history for this page on the wiki MediaWiki 1.45.0-wmf.6 https://en.wikipedia.org/w/index.php?title=Module:DYK_checklist/sandbox&diff=1117367879&oldid=prev WOSlinker: use require('strict') instead of require('Module:No globals') 2022-10-21T10:04:39Z <p>use require(&#039;strict&#039;) instead of require(&#039;Module:No globals&#039;)</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 10:04, 21 October 2022</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 2:</td> <td colspan="2" class="diff-lineno">Line 2:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>-- Load modules</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>-- Load modules</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>require('<del style="font-weight: bold; text-decoration: none;">Module:No globals</del>')</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>require('<ins style="font-weight: bold; text-decoration: none;">strict</ins>')</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local yesno = require('Module:Yesno')</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local yesno = require('Module:Yesno')</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local data = mw.loadData('Module:DYK checklist/data')</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local data = mw.loadData('Module:DYK checklist/data')</div></td> </tr> </table> WOSlinker https://en.wikipedia.org/w/index.php?title=Module:DYK_checklist/sandbox&diff=863003743&oldid=prev Mr. Stradivarius: replace newlines with spaces in escapeUserString 2018-10-08T02:36:32Z <p>replace newlines with spaces in escapeUserString</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 02:36, 8 October 2018</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 65:</td> <td colspan="2" class="diff-lineno">Line 65:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>-- Format a user-supplied string for display in error messages.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>-- Format a user-supplied string for display in error messages.</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>-- This prevents input from being displayed as special wiki markup, <del style="font-weight: bold; text-decoration: none;">and</del></div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>-- This prevents input from being displayed as special wiki markup, <ins style="font-weight: bold; text-decoration: none;">converts</ins></div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>-- truncates long strings so that they<del style="font-weight: bold; text-decoration: none;"> are easier to read.</del></div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>--<ins style="font-weight: bold; text-decoration: none;"> multi-line strings to a single line, and</ins> truncates long strings so that they</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>-- are easier to read.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local function escapeUserString(s)</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local function escapeUserString(s)</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if #s &gt; 28 then</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if #s &gt; 28 then</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> s = s:sub(1, 12) .. '...' .. s:sub(-12, -1)</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> s = s:sub(1, 12) .. '...' .. s:sub(-12, -1)</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> s = s:gsub("\n", " ")</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return mw.text.nowiki(s)</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return mw.text.nowiki(s)</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>end</div></td> </tr> </table> Mr. Stradivarius https://en.wikipedia.org/w/index.php?title=Module:DYK_checklist/sandbox&diff=863003098&oldid=prev Mr. Stradivarius: Make user-supplied strings easier to read in error messages 2018-10-08T02:29:56Z <p>Make user-supplied strings easier to read in error messages</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 02:29, 8 October 2018</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 62:</td> <td colspan="2" class="diff-lineno">Line 62:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local function makeWikitextError(msg)</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local function makeWikitextError(msg)</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return string.format([['''&lt;span style="color: red;"&gt;%s&lt;/span&gt;''']], msg)</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return string.format([['''&lt;span style="color: red;"&gt;%s&lt;/span&gt;''']], msg)</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>end</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>-- Format a user-supplied string for display in error messages.</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>-- This prevents input from being displayed as special wiki markup, and</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>-- truncates long strings so that they are easier to read.</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>local function escapeUserString(s)</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> if #s &gt; 28 then</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> s = s:sub(1, 12) .. '...' .. s:sub(-12, -1)</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> return mw.text.nowiki(s)</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>end</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 281:</td> <td colspan="2" class="diff-lineno">Line 291:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return makeWikitextError(string.format(</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return makeWikitextError(string.format(</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> 'Invalid status "%s" - use one of "y", "?", "maybe", "no" or "again"',</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> 'Invalid status "%s" - use one of "y", "?", "maybe", "no" or "again"',</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> args.status</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> <ins style="font-weight: bold; text-decoration: none;">escapeUserString(</ins>args.status<ins style="font-weight: bold; text-decoration: none;">)</ins></div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> ))</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> ))</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> </tr> </table> Mr. Stradivarius https://en.wikipedia.org/w/index.php?title=Module:DYK_checklist/sandbox&diff=862285050&oldid=prev Mr. Stradivarius: put the invalid string in the status error message 2018-10-03T11:26:18Z <p>put the invalid string in the status error message</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 11:26, 3 October 2018</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 279:</td> <td colspan="2" class="diff-lineno">Line 279:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> and args.status ~= 'again'</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> and args.status ~= 'again'</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> then</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> then</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> return makeWikitextError('Invalid status - use one of "y", "?", "maybe", "no" or "again"'<del style="font-weight: bold; text-decoration: none;">)</del></div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> return makeWikitextError(<ins style="font-weight: bold; text-decoration: none;">string.format(</ins></div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"> </ins>'Invalid status<ins style="font-weight: bold; text-decoration: none;"> "%s"</ins> - use one of "y", "?", "maybe", "no" or "again"'<ins style="font-weight: bold; text-decoration: none;">,</ins></div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> args.status</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> ))</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> </table> Mr. Stradivarius https://en.wikipedia.org/w/index.php?title=Module:DYK_checklist/sandbox&diff=862284648&oldid=prev Mr. Stradivarius: validate the status argument - now invalid values will produce a wikitext error 2018-10-03T11:22:00Z <p>validate the status argument - now invalid values will produce a wikitext error</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 11:22, 3 October 2018</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 57:</td> <td colspan="2" class="diff-lineno">Line 57:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return false</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return false</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>end</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>-- Make a wikitext error message.</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>local function makeWikitextError(msg)</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> return string.format([['''&lt;span style="color: red;"&gt;%s&lt;/span&gt;''']], msg)</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>end</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 267:</td> <td colspan="2" class="diff-lineno">Line 272:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local function makeStatusSection(args)</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local function makeStatusSection(args)</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if not args.status then</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if not args.status then</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> return <del style="font-weight: bold; text-decoration: none;">[[</del>'<del style="font-weight: bold; text-decoration: none;">''&lt;span style="color: red;"&gt;</del>Review is incomplete - please fill in the "status" field<del style="font-weight: bold; text-decoration: none;">&lt;/span&gt;''</del>'<del style="font-weight: bold; text-decoration: none;">]]</del></div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> return <ins style="font-weight: bold; text-decoration: none;">makeWikitextError(</ins>'Review is incomplete - please fill in the "status" field'<ins style="font-weight: bold; text-decoration: none;">)</ins></div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> elseif args.status ~= 'y'</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> and args.status ~= '?'</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> and args.status ~= 'maybe'</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> and args.status ~= 'no'</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> and args.status ~= 'again'</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> then</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> return makeWikitextError('Invalid status - use one of "y", "?", "maybe", "no" or "again"')</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> </table> Mr. Stradivarius https://en.wikipedia.org/w/index.php?title=Module:DYK_checklist/sandbox&diff=862283632&oldid=prev Mr. Stradivarius: copy from Module:DYK checklist 2018-10-03T11:11:50Z <p>copy from <a href="/wiki/Module:DYK_checklist" title="Module:DYK checklist">Module:DYK checklist</a></p> <p><b>New page</b></p><div>-- This module implements {{DYK checklist}}.<br /> <br /> -- Load modules<br /> require(&#039;Module:No globals&#039;)<br /> local yesno = require(&#039;Module:Yesno&#039;)<br /> local data = mw.loadData(&#039;Module:DYK checklist/data&#039;)<br /> local responseIcons = data.responseIcons<br /> local statusIcons = data.statusIcons<br /> <br /> -- Template for making collapsed sections.<br /> local COLLAPSED_WIKITABLE = [[<br /> {| class=&quot;collapsible collapsed&quot; border=&quot;1&quot; style=&quot;border-collapse:collapse;&quot;<br /> |-<br /> ! style=&quot;font-weight:normal; &quot; | %s<br /> |-<br /> | %s<br /> |}]]<br /> <br /> -- Template for making uncollapsed sections.<br /> local UNCOLLAPSED_WIKITABLE = [[<br /> {| border=&quot;1&quot; style=&quot;border-collapse:collapse;&quot;<br /> |-<br /> | %s<br /> |}]]<br /> <br /> --------------------------------------------------------------------------------<br /> -- Helper functions<br /> --------------------------------------------------------------------------------<br /> <br /> -- Make the given key in args lowercase if when lowercased it equals val.<br /> local function makeArgLowerCase(args, key, val)<br /> if args[key] and string.lower(args[key]) == val then<br /> args[key] = val<br /> end<br /> end<br /> <br /> -- Normalize the args table to make it easier to work with elsewhere in the<br /> -- module.<br /> local function normalizeArguments(args)<br /> -- Consolidate aliases<br /> args.plagiarismfree = args.plagiarismfree or args.plagarismfree<br /> args.plagarismfree = nil<br /> <br /> -- Normalize special values<br /> makeArgLowerCase(args, &#039;hookcited&#039;, &#039;agf&#039;)<br /> makeArgLowerCase(args, &#039;picfree&#039;, &#039;na&#039;)<br /> makeArgLowerCase(args, &#039;qpq&#039;, &#039;na&#039;)<br /> end<br /> <br /> -- If any of the keys in the keys array are in the table t, return true;<br /> -- otherwise, return false.<br /> local function anyKeysInTable(t, keys)<br /> for i, key in ipairs(keys) do<br /> if t[key] then<br /> return true<br /> end<br /> end<br /> return false<br /> end<br /> <br /> -- Make a collapsed wikitable with the given header and content. <br /> local function makeCollapsedWikitable(header, content)<br /> return string.format(COLLAPSED_WIKITABLE, header, content)<br /> end<br /> <br /> -- Make an uncollapsed wikitable with the given content. <br /> local function makeUncollapsedWikitable(content)<br /> return string.format(UNCOLLAPSED_WIKITABLE, content)<br /> end<br /> <br /> -- Make a bulleted list from an array of strings.<br /> local function makeBulletedList(items)<br /> local ret = {}<br /> for i, item in ipairs(items) do<br /> ret[i] = &#039;* &#039; .. item<br /> end<br /> return table.concat(ret, &#039;\n&#039;)<br /> end<br /> <br /> -- Make a checklist item from the given issue and status.<br /> local function makeChecklistItem(issue, status, defaultMarker)<br /> if not status then<br /> return string.format(&#039;%s: %s&#039;, issue, responseIcons.UNKNOWN)<br /> elseif yesno(status) then<br /> return string.format(&#039;%s: %s&#039;, issue, responseIcons.YES)<br /> else<br /> return string.format(<br /> &#039;%s: %s - %s&#039;,<br /> issue,<br /> defaultMarker or responseIcons.NO,<br /> status<br /> )<br /> end<br /> end<br /> <br /> -- Return true if all issues have been resolved; return false otherwise.<br /> -- mainIssues is an array of tables as passed to makeSection. otherIssues is a<br /> -- string value or nil (again, as passed to makeSection).<br /> local function allIssuesAreResolved(mainIssues, otherIssues)<br /> if otherIssues then<br /> return false<br /> end<br /> for i, t in ipairs(mainIssues) do<br /> if t.isResolved == false<br /> or (<br /> t.isResolved ~= true<br /> and not yesno(t.status)<br /> )<br /> then<br /> return false<br /> end<br /> end<br /> return true<br /> end<br /> <br /> -- Assemble a section of the DYK checklist.<br /> local function makeSection(options)<br /> local issues = {}<br /> <br /> -- Add main issues<br /> options.mainIssues = options.mainIssues or {}<br /> for i, t in ipairs(options.mainIssues) do<br /> local checklistItem<br /> if t.isResolved then<br /> checklistItem = makeChecklistItem(t.issue, t.status, responseIcons.YES)<br /> else<br /> checklistItem = makeChecklistItem(t.issue, t.status)<br /> end<br /> table.insert(issues, checklistItem)<br /> end<br /> <br /> -- Add other issues<br /> if options.otherIssues then<br /> table.insert(issues, makeChecklistItem(&#039;Other problems&#039;, options.otherIssues))<br /> end<br /> <br /> -- Make the section output.<br /> local content = makeBulletedList(issues)<br /> if allIssuesAreResolved(options.mainIssues, options.otherIssues) then<br /> return makeCollapsedWikitable(options.resolvedHeader, &#039;\n&#039; .. content)<br /> else<br /> return options.unresolvedHeader .. &#039;\n&#039; .. content<br /> end<br /> end<br /> <br /> --------------------------------------------------------------------------------<br /> -- Section functions<br /> -- Each of these functions makes a single section of the DYK checklist.<br /> --------------------------------------------------------------------------------<br /> <br /> local function makeGeneralEligibilitySection(args)<br /> return makeSection{<br /> unresolvedHeader = &quot;&#039;&#039;&#039;General eligiblity:&#039;&#039;&#039;&quot;,<br /> resolvedHeader = &quot;&#039;&#039;&#039;General:&#039;&#039;&#039; Article is new enough and long enough&quot;,<br /> mainIssues = {<br /> {<br /> issue = &#039;[[WP:Did you know#New|New Enough]]&#039;,<br /> status = args.newness,<br /> },<br /> {<br /> issue = &#039;[[WP:Did you know#Long enough|Long Enough]]&#039;,<br /> status = args.length,<br /> },<br /> },<br /> otherIssues = args.eligibilityother,<br /> }<br /> end<br /> <br /> local function makePolicyComplianceSection(args)<br /> return makeSection{<br /> unresolvedHeader = &quot;&#039;&#039;&#039;Policy compliance:&#039;&#039;&#039;&quot;,<br /> resolvedHeader = &quot;&#039;&#039;&#039;Policy:&#039;&#039;&#039; Article is sourced, neutral, and free of copyright problems&quot;,<br /> mainIssues = {<br /> {<br /> issue = &#039;[[WP:Citing sources|Adequate sourcing]]&#039;,<br /> status = args.sourced,<br /> },<br /> {<br /> issue = &#039;[[WP:NPOV|Neutral]]&#039;,<br /> status = args.neutral,<br /> },<br /> {<br /> issue = &#039;Free of [[Wikipedia:Copyright violations|copyright violations]], [[Wikipedia:Plagiarism|plagiarism]], and [[WP:close paraphrasing|close paraphrasing]]&#039;,<br /> status = args.plagiarismfree,<br /> },<br /> },<br /> otherIssues = args.policyother,<br /> }<br /> end<br /> <br /> local function makeHookEligibilitySection(args)<br /> -- Deal with AGF special case for hook citations<br /> local hookCiteStatus, isHookSourceAGF<br /> if args.hookcited == &#039;agf&#039; then<br /> hookCiteStatus = &#039;Offline/paywalled citation accepted in good faith&#039;<br /> isHookSourceAGF = true<br /> else<br /> hookCiteStatus = args.hookcited<br /> isHookSourceAGF = nil -- use default behaviour<br /> end<br /> <br /> -- Generate output<br /> return makeSection{<br /> unresolvedHeader = &quot;&#039;&#039;&#039;Hook eligiblity:&#039;&#039;&#039;&quot;,<br /> resolvedHeader = &quot;&#039;&#039;&#039;Hook:&#039;&#039;&#039; Hook has been verified by provided inline citation&quot;,<br /> mainIssues = {<br /> {<br /> issue = &#039;[[WP:Did you know#Cited hook|Cited]]&#039;,<br /> status = hookCiteStatus,<br /> isResolved = isHookSourceAGF<br /> },<br /> {<br /> issue = &#039;Interesting&#039;,<br /> status = args.hookinterest,<br /> },<br /> },<br /> otherIssues = args.hookother,<br /> }<br /> end<br /> <br /> local function makeImageEligibilitySection(args)<br /> if args.status<br /> and (args.picfree == &#039;na&#039; or not args.picfree)<br /> and not args.picused<br /> and not args.picclear<br /> then<br /> return nil<br /> end<br /> return makeSection{<br /> unresolvedHeader = &quot;&#039;&#039;&#039;Image eligibility:&#039;&#039;&#039;&quot;,<br /> resolvedHeader = &quot;&#039;&#039;&#039;Image:&#039;&#039;&#039; Image is freely licensed, used in the article, and clear at 100px.&quot;,<br /> mainIssues = {<br /> {<br /> issue = &#039;[[WP:ICTIC|Freely licensed]]&#039;,<br /> status = args.picfree,<br /> },<br /> {<br /> issue = &#039;[[WP:Did you know#Pictures|Used in article]]&#039;,<br /> status = args.picused,<br /> },<br /> {<br /> issue = &#039;Clear at 100px&#039;,<br /> status = args.picclear,<br /> },<br /> },<br /> }<br /> end<br /> <br /> local function makeQPQSection(args)<br /> -- The QPQ section is different enough from the other sections that we<br /> -- will just do everything here rather than trying to use the makeSection<br /> -- function.<br /> local isDone = yesno(args.qpq)<br /> if isDone == true then<br /> return makeUncollapsedWikitable(&quot;&#039;&#039;&#039;QPQ&#039;&#039;&#039;: Done.&quot;)<br /> elseif args.qpq == &#039;na&#039; then<br /> return makeUncollapsedWikitable(&quot;&#039;&#039;&#039;QPQ&#039;&#039;&#039;: None required.&quot;)<br /> else<br /> local ret = makeChecklistItem(<br /> &quot;&#039;&#039;&#039;[[Wikipedia:Did you know#QPQ|QPQ]]&#039;&#039;&#039;&quot;,<br /> isDone == false and &#039;Not done&#039; or args.qpq<br /> )<br /> return ret .. &#039;&lt;br /&gt;&#039;<br /> end<br /> end<br /> <br /> local function makeStatusSection(args)<br /> if not args.status then<br /> return [[&#039;&#039;&#039;&lt;span style=&quot;color: red;&quot;&gt;Review is incomplete - please fill in the &quot;status&quot; field&lt;/span&gt;&#039;&#039;&#039;]]<br /> end<br /> <br /> local ret = {}<br /> table.insert(ret, &quot;&#039;&#039;&#039;Overall&#039;&#039;&#039;: &quot;)<br /> local isOK = yesno(args.status)<br /> if isOK == true then<br /> if args.hookcited == &#039;agf&#039; then<br /> table.insert(ret, statusIcons.YES_AGF)<br /> else<br /> table.insert(ret, statusIcons.YES)<br /> end<br /> elseif isOK == false then<br /> table.insert(ret, statusIcons.NO)<br /> elseif args.status == &#039;?&#039; then<br /> table.insert(ret, statusIcons.QUESTION)<br /> elseif args.status == &#039;maybe&#039; then<br /> table.insert(ret, statusIcons.MAYBE)<br /> elseif args.status == &#039;again&#039; then<br /> table.insert(ret, statusIcons.AGAIN)<br /> end<br /> if args.comments then<br /> table.insert(ret, &#039; &#039;)<br /> table.insert(ret, args.comments)<br /> end<br /> if args.sign then<br /> table.insert(ret, &#039; &#039;)<br /> table.insert(ret, args.sign)<br /> end<br /> return table.concat(ret)<br /> end<br /> <br /> --------------------------------------------------------------------------------<br /> -- Exports<br /> --------------------------------------------------------------------------------<br /> <br /> local p = {}<br /> <br /> function p._main(args)<br /> -- Normalize the args table to make it easier to work with in other<br /> -- functions.<br /> normalizeArguments(args)<br /> <br /> -- Check whether the review has been started.<br /> local params = {<br /> &#039;newness&#039;,<br /> &#039;length&#039;,<br /> &#039;eligibilityother&#039;,<br /> &#039;sourced&#039;,<br /> &#039;neutral&#039;,<br /> &#039;plagiarismfree&#039;,<br /> &#039;policyother&#039;,<br /> &#039;hookcited&#039;,<br /> &#039;hookother&#039;,<br /> &#039;hookcited&#039;,<br /> &#039;picfree&#039;,<br /> &#039;picused&#039;,<br /> &#039;picclear&#039;,<br /> }<br /> if not anyKeysInTable(args, params) then<br /> return &#039;Review not started&#039;<br /> end<br /> <br /> -- The review has been started, so assemble all the review sections.<br /> local funcs = {<br /> makeGeneralEligibilitySection,<br /> makePolicyComplianceSection,<br /> makeHookEligibilitySection,<br /> makeImageEligibilitySection,<br /> makeQPQSection,<br /> makeStatusSection,<br /> }<br /> local ret = {}<br /> for i, func in ipairs(funcs) do<br /> table.insert(ret, func(args))<br /> end<br /> return table.concat(ret, &#039;\n&#039;)<br /> end<br /> <br /> function p.main(frame)<br /> local args = require(&#039;Module:Arguments&#039;).getArgs(frame, {<br /> wrappers = &#039;Template:DYK checklist&#039;,<br /> })<br /> return p._main(args)<br /> end<br /> <br /> return p</div> Mr. Stradivarius