Module talk:Color contrast

Making the lum function accessible from modules
I've made the lum function accessible from modules by changing the code from:

function p.lum(frame) return color2lum(frame.args[1] or frame:getParent.args[1]) end

to:

function p.lum(frame) local args = frame.args[1] or frame:getParent.args[1] return p._lum(args) end

function p._lum(args) return color2lum(args) end

The changes are on the sandbox and will implement them if there are no comments. --Gonnym (talk) 11:03, 6 January 2019 (UTC)
 * That looks like a very sensible and useful improvement. My only reservation is that passing the parameters as a table gives the person wanting to import the routine no idea of what values/types to supply to the routine without having to read through all of the code to determine them. In general I'd usually recommend either documenting a brief list of required values for the args table or passing the parameters as a list of obviously-named variables rather than a table. But that's just a minor point and shouldn't stop you from updating the main module. --RexxS (talk) 13:03, 6 January 2019 (UTC)
 * I don't mind doing either if that helps. I just followed the current style used for the other three public functions. Do you want me to change _lum(args) to _lum(color)? --Gonnym (talk) 13:27, 6 January 2019 (UTC)
 * Sorry, my confusion: now I've looked harder at it, you're actually passing a string representing the colour, not a table (which is what args would most commonly indicate). I would suggest: I know we can put fuller information in the documentation, but I always suggest leaving small annotations in the code to help any re-users.
 * You could also write  instead of the second function definition, but setting it out explicitly, as you have done, helps whoever is importing the module to see what parameters to supply. Cheers --RexxS (talk) 15:41, 6 January 2019 (UTC)
 * Sure, looks good. I'll update the sandbox version. --Gonnym (talk) 15:43, 6 January 2019 (UTC)
 * Sure, looks good. I'll update the sandbox version. --Gonnym (talk) 15:43, 6 January 2019 (UTC)

Possible typos in code?
Observing the code, I might have spotted a couple of typos:

In function, lines 160 and 161
I think  should read   instead. Here,  is expected to be a number, thus there is no point in applying it a regular expression. Besides, given the four lines above, it seems logical to use  variable here instead of.

In function, line 209
I think  should read   instead, since at this point we have isolated a forecolor specification from input CSS.

My apologies if I would have misinterpreted your code.

Kindly, Olivier Ph. (talk) 12:11, 13 October 2020 (UTC)

Categorisation broken?
Through Documentation subpage, Category:Modules handling colors is added as expected. However, the page does not appear in. -DePiep (talk) 15:12, 7 January 2021 (UTC)
 * categorisation behaves as something of a black art. The page appears in Category:Modules handling colors now, but obviously didn't earlier today. FAQ/Categorization discusses some of the issues that may cause the lag. I usually try a null edit to "touch" the pages concerned and often find the page then appears in the category, but it's not always 100% successful. --RexxS (talk) 16:07, 7 January 2021 (UTC)
 * I had just edited out the Sandbox other . So we have a cause (bug). Did not investigate problem further.-DePiep (talk) 16:11, 7 January 2021 (UTC)
 * Yes I saw that. But because the category was being added via Sandbox other and now is added directly via Module:Color contrast/doc, that becomes effectively a different transclusion and the usual caveats about delays because of cached transclusions apply. --RexxS (talk) 16:56, 7 January 2021 (UTC)
 * should be checked for Module ns then? But here it seems to work. (To be clear: before my edit the category was empty, and no delay was working, no recent edits). I'll leave it for now. -DePiep (talk) 17:18, 7 January 2021 (UTC)
 * should be checked for Module ns then? But here it seems to work. (To be clear: before my edit the category was empty, and no delay was working, no recent edits). I'll leave it for now. -DePiep (talk) 17:18, 7 January 2021 (UTC)