Home
Random
Log in
Settings
About YouTube Wiki
Disclaimers
YouTube Wiki
Search
Editing
Module talk:InfoboxImage
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Permanently protected}} {{talk header}} {{User:MiszaBot/config |archiveheader = {{talkarchivenav}} |maxarchivesize = 75K |counter = 4 |minthreadsleft = 4 |minthreadstoarchive = 1 |algo = old(365d) |archive = Module talk:InfoboxImage/Archive %(counter)d }} {{archives|search=yes}} == Other size parameters cause upright to be ignored == With the current implementation of this module, the upright parameter is ignored if the maxsize or sizedefault parameters are defined. This appears to be because image syntax ignores upright if a size in pixels is defined. It means that if either of those parameters are used in an infobox template (see {{tl|Infobox bridge}} for example), then it's not possible to use the upright parameter at all in articles, which is not the intended behavior. I don't have the Lua skills to do so, but I think the module should be rewritten so that a pixel size is not passed if the upright parameter is used and the size parameter is not. [[User:Pi.1415926535|Pi.1415926535]] ([[User talk:Pi.1415926535|talk]]) 03:27, 30 May 2025 (UTC) :I think there are two separate cases to consider: :# Both {{para|upright}} and either {{para|maxsize}} or {{para|sizedefault}} are specified :# Both {{para|upright}} and {{para|size}} are specified :In the first case, I think the current module behavior is likely incorrect -- the caller specified a size via {{para|upright}} and it's being handled as if no size was specified. The second case is less clear, because conflicting sizes are being provided. I'm reluctant to change the current behavior for the second case, because there may be unintended consequences to the 5M articles that use this module. :Of course, fixing the incorrect behavior also may have unintended consequences, also, so we should be careful. For example, the proposed behavior now allows people to set absurd values to {{para|upright}} and there is no check or limit. :I've modified [[Module:InfoboxImage/sandbox|the sandbox]] to fix the first issue, and updated [[Module:InfoboxImage/testcases|the tests]] to exercise the new code. {{Pinging|WOSlinker}} to see if they have any comments on the change: other editors are also welcome to comment. β [[User:Hike395|hike395]] ([[User talk:Hike395|talk]]) 09:17, 30 May 2025 (UTC) ::Later: I added some logic to ensure that {{para|upright}} doesn't produce an image larger than {{para|maxsize}}, assuming the default user preference. This fixes one potential issue. Updated sandbox and testcases. I'm hoping some other templateeditor or admin takes a look at the [https://en.wikipedia.org/w/index.php?title=Special%3AComparePages&page1=Module%3AInfoboxImage&page2=Module%3AInfoboxImage%2Fsandbox diff]. β [[User:Hike395|hike395]] ([[User talk:Hike395|talk]]) 10:01, 30 May 2025 (UTC) :::@[[User:Hike395|Hike395]]: Thanks for looking into this! Just to clarify - will this still allow an image scaled with upright to be larger than maxsize if the user preference is set to a larger-than-default value? That seems important for accessibility reasons. [[User:Pi.1415926535|Pi.1415926535]] ([[User talk:Pi.1415926535|talk]]) 16:09, 30 May 2025 (UTC) ::::Yes: if upright is specified, then maxsize will scale with the user's default image size. So if maxsize=300, and the user's preferred thumbnail size is set to 300px, then the output image will be limited to be less than 300*300/220 = 409px for that user. There's no way to avoid this. β [[User:Hike395|hike395]] ([[User talk:Hike395|talk]]) 00:39, 31 May 2025 (UTC) :::::Great, that is the behavior I believe it should have. [[User:Pi.1415926535|Pi.1415926535]] ([[User talk:Pi.1415926535|talk]]) 00:45, 31 May 2025 (UTC) :To the original observation {{tq|the upright parameter is ignored if the maxsize or sizedefault parameters are defined. This appears to be because image syntax ignores upright if a size in pixels is defined}}: this is expected behaviour, and is documented at [[WP:PICSIZE]], inside the "Implementation details" box ([[WP:EIS#Implementation details|direct link]]), last paragraph. --[[User:Redrose64|<span style="color:#a80000; background:#ffeeee; text-decoration:inherit">Red</span>rose64]] 🌹 ([[User talk:Redrose64|talk]]) 13:39, 31 May 2025 (UTC) ::{{ping|Pi.1415926535|Redrose64}} Picking this back up. My sandbox edits do not contradict [[WP:PICSIZE]]. If a absolute size and an upright are both specified, then the absolute size is used. What I did was scale maxsize and sizedefault relative to the user preferred image size. Those two parameters are only defined in this module: [[WP:PICSIZE]] does not discuss them. ::Is it ok to promote the sandbox to main? I see that since this edit, Pi.14 has removed maxsize and sizedefault from a number of infoboxes. It would be good to restore those, if I can promote sandbox to main. β [[User:Hike395|hike395]] ([[User talk:Hike395|talk]]) 08:48, 5 August 2025 (UTC) :::{{ping|Pi.1415926535|Redrose64}} Any comments or thoughts before I propose this as an edit? {{U|Pppery}} just [[WP:FULL|fully protected]] this Module, so I can no longer edit it, so even a simple support/agree would be helpful. β [[User:Hike395|hike395]] ([[User talk:Hike395|talk]]) 14:46, 12 August 2025 (UTC) :::: To be clear, my full protection was completely unrelated to this dispute, which I didn't even know existed; if you look at my edits at the time I adjusted the protection level of hundreds of templates. [[User:Pppery|* Pppery *]] [[User talk:Pppery|<sub style="color:#800000">it has begun...</sub>]] 17:35, 12 August 2025 (UTC) :::::If I'm understanding correctly what your edit does, I support it. I'm confused about your statement {{tq|Pi.14 has removed maxsize and sizedefault from a number of infoboxes}} - to my knowledge, I haven't edited any infobox templates to remove these. [[User:Pi.1415926535|Pi.1415926535]] ([[User talk:Pi.1415926535|talk]]) 05:12, 13 August 2025 (UTC) ::::::{{ping|Pppery}} apologies. I didn't mean to imply causation here -- I just wanted to point out that I can no longer edit the template directly. ::::::{{ping|Pi.1415926535}} more apologies. I recall seeing edits to infoboxes which removed maxsize and sizedefault, but now I cannot find them to check who did them. β [[User:Hike395|hike395]] ([[User talk:Hike395|talk]]) 12:33, 13 August 2025 (UTC) ===Edit request=== {{FPER|answered=yes}} Please copy [[Module:InfoboxImage/sandbox]] to [[Module:InfoboxImage]] This is a change in handling the case where {{para|upright}} and either {{para|maxsize}} or {{para|sizedefault}} is specified. In this case, the sandbox version obeys {{para|upright}}, but if it exceeds <code>maxsize/220</code>, then it is set to <code>maxsize/220</code>. The current behavior is to ignore {{para|upright}} when either {{para|maxsize}} or {{para|sizedefault}} is specified, which is incorrect. This edit does not change any behavior if {{para|upright}} is not specified. Also, if {{para|size}} and {{para|upright}} are both specified, the behavior remains unchanged: {{para|size}} is obeyed in that case. :Are you sure that this description is correct? On the testcases page, I am seeing the Mustela image with <syntaxhighlight>upright=1.5|sizedefault=272|maxsize=300</syntaxhighlight>. The live module renders the image at 1.5x my thumbnail size. The sandbox image is rendered at 272px. This seems to be the opposite of the description above, if I am reading it correctly. It also seems to be a fix that helps the module to match normal image rendering (px is preferred over upright). Is this what you want? β [[User:Jonesey95|Jonesey95]] ([[User talk:Jonesey95|talk]]) 17:01, 15 August 2025 (UTC) ::You may be interpreting the unit tests backward? Here are the results when main and sandbox are called with the case that you are highlighting: :::<code><nowiki>{{subst:#invoke:InfoboxImage|InfoboxImage|image=Mustela erminea upright.jpg |upright=1|sizedefault=272|maxsize=300}}</nowiki></code> β [[File:Mustela erminea upright.jpg|272px|upright=1]] :::<code><nowiki>{{subst:#invoke:InfoboxImage/sandbox|InfoboxImage|image=Mustela erminea upright.jpg |upright=1|sizedefault=272|maxsize=300}}</nowiki></code> β [[File:Mustela erminea upright.jpg|frameless|upright=1]] :::Here, the main module is generating a pic with size=272px, while the sandbox module is generating a pic with upright=1 (rendered at your preferred size). So the logic is correct. :::The logic has not changed when both size and upright are specified. They are both emitted and MediaWiki prefers size over upright: :::<code><nowiki>{{subst:#invoke:InfoboxImage|InfoboxImage|image=Mustela erminea upright.jpg |upright=1|size=200}}</nowiki></code> β [[File:Mustela erminea upright.jpg|200px|upright=1]] :::<code><nowiki>{{subst:#invoke:InfoboxImage/sandbox|InfoboxImage|image=Mustela erminea upright.jpg |upright=1|size=200}}</nowiki></code> β [[File:Mustela erminea upright.jpg|200px|upright=1]] :::β [[User:Hike395|hike395]] ([[User talk:Hike395|talk]]) 17:18, 15 August 2025 (UTC) ::::Indeed, I do not understand what "Expected" and "Actual" refer to on that page. I'm used to seeing the live template followed by the sandbox, with appropriate headers to match. In that case, and based on the apparent consensus above, I have no objections. It looks like this change will require an administrator, which I am not. β [[User:Jonesey95|Jonesey95]] ([[User talk:Jonesey95|talk]]) 17:25, 15 August 2025 (UTC) ::::: {{ping|Redrose64}} Do you object to this request? [[User:Pppery|* Pppery *]] [[User talk:Pppery|<sub style="color:#800000">it has begun...</sub>]] 19:48, 15 August 2025 (UTC) ::::::I'm not a Lua expert, and have never claimed to be. --[[User:Redrose64|<span style="color:#a80000; background:#ffeeee; text-decoration:inherit">Red</span>rose64]] 🌹 ([[User talk:Redrose64|talk]]) 22:18, 16 August 2025 (UTC) {{Done}} [[User:Pppery|* Pppery *]] [[User talk:Pppery|<sub style="color:#800000">it has begun...</sub>]] 04:35, 17 August 2025 (UTC) == Default maxsize to 250px == Iβve recently been coming across a lot of Infoboxes with substatially large images in their infoboxes. 300-400px in size. Can we modify this module to default to a {{code|maxsize}} of 250px? If for some reason a particular infobox wants to override that, thatβs another matter, but that way we can at least cut down on the number of large images? If there is no objection to this change, Iβm happy to write the code in the sandbox and do a formal edit request. '''[[User:Zackmann08|<span style="color:#00ced1">Zack</span><span style="color:#007F94">mann</span>]]''' (<sup>[[User_talk:Zackmann08|Talk to me]]</sup>/<sub>[[Special:Contributions/Zackmann08|<span style="color:orange;">What I been doing</span>]]</sub>) 07:37, 30 September 2025 (UTC) :A few comments: :#I would be extremely cautious about setting defaults in this template. It's used on 5M pages and in system messages. The probability of unintended consequences is high. :#Looking at [https://en.wikipedia.org/w/index.php?title=Special:Search&limit=500&offset=0&ns10=1&search=insource%3AInfoboxImage+insource%3Asizedefault the usage of {{para|sizedefault}}], I see many templates use {{para|sizedefault|frameless}}. With the current code, such a default will ignore maxsize. :#Looking at [https://en.wikipedia.org/w/index.php?title=Special:Search&limit=500&offset=0&ns10=1&search=insource%3AInfoboxImage+insource%3Amaxsize the usage of {{para|maxsize}}], many templates set maxsize larger than 250px. The largest ones appear to be 325px. To be conservative, the default maxsize should set to a high value (e.g., 325px). I think, however, it would be safer not to have a default maxsize. :β [[User:Hike395|hike395]] ([[User talk:Hike395|talk]]) 10:11, 30 September 2025 (UTC) ::We should not standardize on a pixel size, per [[MOS:IMGSIZE]] ({{tq|Except with very good reason, a fixed width in pixels (e.g. 17px) should not be specified, because it ignores the user's base width setting.}}). See [[Module_talk:InfoboxImage#Help_with_improving_default_image_sizes|the discussion above]], which proposes to somehow default to the viewer's preferred thumbnail size, and [[Template_talk:Infobox_bridge/Archive_2#Image_and_map_widths|the 2022 discussion that led to the one above]]. β [[User:Jonesey95|Jonesey95]] ([[User talk:Jonesey95|talk]]) 10:44, 30 September 2025 (UTC) :::Per {{diff|title=Module:InfoboxImage|diff=prev|oldid=1306324007|label=this recent edit}}, setting {{para|maxsize}} does not standardize on a pixel size. If we do set {{para|maxsize|250}}, then it limits {{para|size}} to 250 and limits {{para|upright}} to 1.136. px is not forced or favored in any way. :::Also -- I just cleaned up <s>all</s> uses of {{para|sizedefault|frameless}}, so that is no longer a factor in any decision. β [[User:Hike395|hike395]] ([[User talk:Hike395|talk]]) 13:52, 30 September 2025 (UTC) ::::Thanks for both of those. Based on the above discussion, which I had forgotten about because I got so mixed up, it looks like the sizedefault of frameless will override the maxsize as long as size= is not specified. I tested <code>sizedefault=frameless|maxsize=250</code> in my sandbox and got a 300px image, which is the same as my thumbnail preference. If I set <code>sizedefault=frameless|maxsize=250|size=100</code>, I get a 100px image. Based on that, it looks like a <s>sizedefault</s> <ins>maxsize</ins> of 250px would prevent images from getting larger than the editor's preferred thumb size unless size= is specifically set. Caveat: I might not be testing all possible cases. β [[User:Jonesey95|Jonesey95]] ([[User talk:Jonesey95|talk]]) 14:12, 30 September 2025 (UTC) :::::To clarify: the behavior with {{para|sizedefault|frameless}} is a bug. Maybe I should fix the bug rather than cleaning up occurrences of {{para|sizedefault|frameless}}, although fixing the bug would add 3 lines of special-purpose code for that case. :::::To see the correct behavior, if you try <code>maxsize=250</code> you should get 250px, if you try <code>upright=1|maxsize=250</code> you should get 300px, while if you try <code>upright=1.5|maxsize=250</code> you should get 340px (limited by maxsize). β [[User:Hike395|hike395]] ([[User talk:Hike395|talk]]) 14:44, 30 September 2025 (UTC) ::::::Yeah, now I'm confused again. ::::::*When I set <code>maxsize=250</code>, I get 250px (my thumb size is 300px, and I thought sizedefault=frameless was being set by default, so I was expecting 300px). ::::::*When I set <code>|upright=1|maxsize=200</code>, I get 270px (about 137% of maxsize, so it doesn't match maxsize or the upright setting). ::::::*When I set <code>|upright=1|maxsize=250</code>, I get 300px (my thumb size preference; this seems correct). ::::::*When I set <code>|upright=1|maxsize=300</code>, I get 300px (my thumb size preference; this seems correct). ::::::*When I set <code>|upright=1.5|maxsize=300</code>, I get 412px (about 137% of maxsize and my thumb size, so it doesn't match maxsize or the upright setting). ::::::The code I am using in a Preview window in my sandbox looks like <syntaxhighlight inline lang=wikitext>{{subst:#invoke:InfoboxImage|InfoboxImage|image=Mustela erminea upright.jpg |upright=1|maxsize=300}}</syntaxhighlight>. Somebody please explain it to me like I'm not very smart. β [[User:Jonesey95|Jonesey95]] ([[User talk:Jonesey95|talk]]) 16:22, 30 September 2025 (UTC) :::::::The maxsize parameter is to limit the value of the size parameter. Normally in an infobox template you would have <syntaxhighlight inline lang=wikitext>image = {{subst:#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|size={{{image_size}}}|maxsize=300}}</syntaxhighlight> and then when used on an article with <syntaxhighlight inline lang=wikitext>{{Infobox something|image=abc.jpg|image_size=500}}</syntaxhighlight>, the image size would be limited to 300. -- [[User:WOSlinker|WOSlinker]] ([[User talk:WOSlinker|talk]]) 18:26, 30 September 2025 (UTC) {{od|7}} To understand the behavior, see [[#Other size parameters cause upright to be ignored|the discussion above]]. The maximum size (in px) for InfoboxImage when upright is specified is (maxsize/220)*(your thumbnail preference). :When you set maxsize=200, you are saying that the max upright is 200/220 = 0.909, which is 272px. :When you set maxsize=250, you are saying that the max upright is 250/220 = 1.136, which is 341px. Upright=1 thus gives 300px for you. :When you set maxsize=300, you are saying that the max upright is 300/220 = 1.364, which is 409px for you. Upright=1 thus gives 300px, but upright=1.5 gets limited to 1.364 which is 409px. The 220 comes from the default user thumbnail size. Hope this helps. β [[User:Hike395|hike395]] ([[User talk:Hike395|talk]]) 22:37, 30 September 2025 (UTC) :[https://en.wikipedia.org/w/index.php?title=Atuwatse_I&oldid=1305079334 Here] is an example of what a default {{code|maxsize}} would help preventβ¦ - '''[[User:Zackmann08|<span style="color:#00ced1">Zack</span><span style="color:#007F94">mann</span>]]''' (<sup>[[User_talk:Zackmann08|Talk to me]]</sup>/<sub>[[Special:Contributions/Zackmann08|<span style="color:orange;">What I been doing</span>]]</sub>) 01:06, 1 October 2025 (UTC) ::{{ping|Zackmann08}} sorry for the bad news, but that article uses {{tl|Infobox royalty}} that already has {{para|maxsize|300}}. Adding a default maxsize would do anything in this case. What this module produces with that input is <nowiki>[[File:Olu Atuwatse I Dom Domingos.jpg|300x|upright=1]]</nowiki>. The "300x" is a syntax error, so the Wiki image markup just displays the image at full resolution (which is 5286x4119px). ::We could attempt to harden the output of the module so that junk doesn't "leak through". This is separate from maxsize. β [[User:Hike395|hike395]] ([[User talk:Hike395|talk]]) 02:46, 1 October 2025 (UTC) :::{{ping|Hike395}} I added the {{para|maxsize|300}} {{Diff|Template:Infobox royalty|1314363626|1313895985|here}} as a result of finding that page. But good to know that maxsize wouldnβt have prevented it. {{smiley|sad}} β '''[[User:Zackmann08|<span style="color:#00ced1">Zack</span><span style="color:#007F94">mann</span>]]''' (<sup>[[User_talk:Zackmann08|Talk to me]]</sup>/<sub>[[Special:Contributions/Zackmann08|<span style="color:orange;">What I been doing</span>]]</sub>) 02:49, 1 October 2025 (UTC) :Continuing from [[Template talk:Infobox settlement#Max size]] :) My [[Special:Preferences#mw-prefsection-rendering-files]] says 250px, and I don't remember having changed this myself. :So the use of 220 in this module needs to be abstracted away into some sort of a variable, because it looks like this isn't making a lot of sense otherwise. --[[User:Joy|Joy]] ([[User talk:Joy|talk]]) 10:18, 17 October 2025 (UTC) ::And if [[Wikipedia:Image use policy#Displayed image size]] tells editors {{tq|Except with very good reason, do not use px [...], which forces a fixed image width measured in pixels, disregarding the user's image size preference setting.}}, then this module should also support relative sizes as well, instead of forcing this sort of pixel-based thinking from editors. --[[User:Joy|Joy]] ([[User talk:Joy|talk]]) 10:20, 17 October 2025 (UTC) :The default thumbnail size used to be 220px but changed to 250px in April 2025. See [[Wikipedia:Tech_news/Archive_13#Tech_News:_2025-16]]. -- [[User:WOSlinker|WOSlinker]] ([[User talk:WOSlinker|talk]]) 17:59, 17 October 2025 (UTC) ===Edit request 17 October 2025=== {{FPER|answered=yes}} Please copy the [[Module:InfoboxImage/sandbox|sandbox]] to [[Module:InfoboxImage|main]]. Two changes: # (technical) --- factored out list of placeholder images and tracking categories into [[Module:InfoboxImage/data]] to neaten beginning of module # (substantive) --- per discussion above, the systemwide default thumbnail size is now 250px. Factored this value out of existing code and turned it into constant at beginning of module. This introduces two expected "errors" into the [[Module talk:InfoboxImage/testcases|test cases]]. {{pinging|WOSlinker}} who brought this up. β [[User:Hike395|hike395]] ([[User talk:Hike395|talk]]) 02:28, 18 October 2025 (UTC) :{{done}} -- [[User:WOSlinker|WOSlinker]] ([[User talk:WOSlinker|talk]]) 09:46, 18 October 2025 (UTC) == UPDATE PROFILE IMAGE == {{edit fully-protected|Module:InfoboxImage|answered=yes}} Please change the profile photo to the following image https://commons.wikimedia.org/wiki/File:Walter_Masterson.jpg [[User:Wikispiraling|Wikispiraling]] ([[User talk:Wikispiraling|talk]]) 23:54, 24 November 2025 (UTC) : {{ping|Wikispiraling}} This page is for discussions concerning use and development of the module [[Module:InfoboxImage]]. I can only assume that you are intending to ask for the image you have mentioned to be put in the article [[Walter Masterson]]; if so the request belongs in the talk page of whatever article that is, not here. [[User:JBW|JBW]] ([[User talk:JBW|talk]]) 00:04, 25 November 2025 (UTC) ==Discussion at [[:Template talk:MergedMap]]== [[File:Symbol watching blue lashes high contrast.svg|25px|link=|alt=]] You are invited to join the discussion at [[:Template talk:MergedMap]].  --<!-- Template:Please see --> [[User:Joy|Joy]] ([[User talk:Joy|talk]]) 12:48, 27 November 2025 (UTC) == Captions == Is there a reliable way to get captions from wikidata? I don't think this module deals with captions at all, which is surprising. We have an issue on [[Template:Infobox martial artist]] where the caption is not always matching the image. This module was using the preferred image but [[Module:Wikidata]] was taking the caption from a different image — Martin <small>([[User:MSGJ|MSGJ]] Β· [[User talk:MSGJ|talk]])</small> 09:23, 6 January 2026 (UTC) :That infobox is checking the image and caption params independently. :<syntaxhighlight lang="wikitext"> {{if empty|{{{image|}}}|{{#invoke:Wikidata|claim|P18}}}} {{if empty|{{{caption|}}}|{{#invoke:Wikidata|getImageLegend|FETCH_WIKIDATA}}}} </syntaxhighlight> :Maybe needs to check both params are empty before using any wikidata values? :<syntaxhighlight lang="wikitext"> {{#ifeq:{{{image|}}}{{{caption|}}}||{{#invoke:Wikidata|claim|P18}}|{{{image|}}}}} {{#ifeq:{{{image|}}}{{{caption|}}}||{{#invoke:Wikidata|getImageLegend|FETCH_WIKIDATA}}|{{{caption|}}}}} </syntaxhighlight> :[[User:WOSlinker|WOSlinker]] ([[User talk:WOSlinker|talk]]) 10:04, 6 January 2026 (UTC) == Protected edit request on 26 March 2026 == {{edit fully-protected|Module:InfoboxImage|answered=yes}} Please remove the images.it is misleading it's not real.thanks [[User:Abidthegreat|Abidthegreat]] ([[User talk:Abidthegreat|talk]]) 07:28, 26 March 2026 (UTC) : This is the wrong place for this request. I would suggest that you start a conversation at [[Talk:Malik ibn Anas]]. -[[User:MPGuy2824|MPGuy2824]] ([[User talk:MPGuy2824|talk]]) 10:58, 26 March 2026 (UTC) == Proposal: Performance optimization, data restructuring, and bug fixes for InfoboxImage == I would like to propose a comprehensive update to [[Module:InfoboxImage]] and its data submodule [[Module:InfoboxImage/data]]. The goal is to improve performance (especially on long articles with multiple infoboxes), fix a silent bug regarding alt text validation, and structure the data layer according to Lua best practices in MediaWiki. I have prepared and tested the updated code in the local sandboxes. Here is a breakdown of the key improvements: === 1. Core Module Optimization ([[Module:InfoboxImage/sandbox]]) === * '''File Namespace Caching (Performance):''' The current production code queries and rebuilds the file namespace aliases table via `mw.site.namespaces[6]` twice on ''every single invocation'' (once inside `IsPlaceholder` and again in the main function body). On long pages or transclusions, this creates unnecessary overhead. The proposed version builds this namespace cache list exactly once at the top-level scope during the initial module load. * '''Redundant Code & Asserts Cleanup:''' Removed several `assert(image ~= nil)` checks right after `mw.ustring.gsub`. In the Scribunto environment, these standard string operations never return `nil` when provided with valid string inputs, meaning these assertions were purely redundant and polluting the code logic. * '''Namespace Stripping Helper:''' Unified the file prefix stripping logic into a streamlined internal helper function `stripNamespace`, reducing code duplication between functions. === 2. Bug Fix: Proper Alt Text Keyword Filtering === * In the current live module, the validation that prevents reserved keywords (like `thumbnail`, `thumb`, `center`, etc.) from being used as description text is executed on line 164 (`alt = nil`). * However, the variable `alt` has already been appended to the `result` string on line 147. This means the keyword-filtering mechanism was completely bypassed and **silently failing**. * The sandbox version corrects this by evaluating and filtering the `alt` string ''before'' it is appended to the final output link structure. === 3. Data Layer Refactoring ([[Module:InfoboxImage/data/sandbox]]) === * '''Native O(1) Hash Table Lookup:''' The current live `/data` module stores placeholders as a sequential array list and runs a `for` loop at runtime to reconstruct a key-value hash map. This completely negates the performance caching benefits of `mw.loadData`. The new version stores the data directly as a lookup table (`["Filename.svg"] = true`), allowing instantaneous $O(1)$ lookups natively without execution loops. * '''De-duplication:''' Removed several duplicate filenames present in the legacy list (e.g., `CarersLogo.gif`, `Diagram Needed.svg`, `No male portrait.svg`, etc.). * '''Decoupled Tracking Categories:''' The main module now fully relies on the tracking categories strings directly passed by `mw.loadData`, decoupling infrastructure names from the logical parser engine. === Testing === The sandboxes have been cross-verified against multiple test cases (bare filenames, fully formatted `[[File:...]]` links, raw URLs, templates, and strip markers). The output markup is identical to the current production version, but executes with significantly less processing overhead. Please let me know if there are any objections or feedback before I submit an official Edit Request. Thanks! [[User:GKNishimoto|GKNishimoto]] ([[User talk:GKNishimoto|talk]]) 13:39, 4 June 2026 (UTC) ===Feedback=== A couple of things to note: * <code><nowiki>mw.loadData</nowiki></code> already caches the data load once per module load (see [https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#mw.loadData]), so there's no need for the new code at sandbox lines 23-26. * Remember that Lua parsing/interpreting time is significant. Thus when you have a long list of data (as in [[Module:InfoboxImage/data]]), it's innately O(n), because the parser has to touch every element anyway. Because of these, my preference is to perform mw.loadData locally within each function. This performs lazy evaluation of loadData -- it's not loaded until its needed. For this module, the lazy load occurs 100% of the time, so it isn't critical at this time. But if someone changes the code in the future, lazy loading could be helpful. If you always load the module at lines 23-26, then you'll always incur the Lua parsing overhead for the data. The conversion of [[Module:InfoboxImage/data]] to use a hash table directly is nice, although won't help performance. Because the time is dominated by Lua parsing, the conversion of the list to a hash (which only happens once one module load) will not be noticable. Also: please don't remove comments from the code. They're helpful for future developers. β [[User:Hike395|hike395]] ([[User talk:Hike395|talk]]) 15:08, 4 June 2026 (UTC) :Thank you for the excellent feedback, [[User:Hike395|hike395]]. You make a very sharp point regarding the Scribunto environment mechanics and the overhead of Lua parsing time versus execution loops. I have fully updated the sandboxes to incorporate your suggestions, balancing the structural improvements with the engine's best practices: :* '''Lazy Loading Implemented:''' I removed the module-level eager loading of the data submodule. The call to <code>mw.loadData('Module:InfoboxImage/data/sandbox')</code> has been moved locally inside <code>trackingCat</code> and <code>i.IsPlaceholder</code>. This ensures that the data layer is only processed when actually needed, preventing unnecessary overhead if the module's scope changes in the future. :* '''Comments and Assertions Restored:''' All documentation comments and essential logical descriptions have been added back to ensure readability and maintainability for future developers. :* '''Hash Table & Bug Fix Retained:''' The data submodule structure remains as a direct lookup hash table (which, as you noted, provides a cleaner and more native design even if parsing time dominates), and the critical fix for the bypassed alt-text validation keyword filter is intact. :The [[Module:InfoboxImage/sandbox]] and [[Module:InfoboxImage/data/sandbox]] are now fully aligned with both performance optimization and proper lazy-evaluation architecture. If there are no further objections, I will proceed with the official Edit Request. Thanks again for the review! --[[User:GKNishimoto|GKNishimoto]] ([[User talk:GKNishimoto|talk]]) 16:57, 4 June 2026 (UTC)
Summary:
Please note that all contributions to YouTube Wiki are considered to be released under the GNU Free Documentation License 1.3 or later (see
YouTubeWiki:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Pages included on this page:
User:MiszaBot/config
(
edit
)
Template:Archives
(
edit
)
Template:Code
(
edit
)
Template:Diff
(
edit
)
Template:Done
(
edit
)
Template:Edit fully-protected
(
edit
)
Template:FPER
(
edit
)
Template:If empty
(
edit
)
Template:Infobox something
(
edit
)
Template:Od
(
edit
)
Template:Para
(
edit
)
Template:Parameter
(
edit
)
Template:Permanently protected
(
edit
)
Template:Ping
(
edit
)
Template:Pinging
(
edit
)
Template:Smiley
(
edit
)
Template:Talk header
(
edit
)
Template:Template link
(
edit
)
Template:Tl
(
edit
)
Template:Tq
(
edit
)
Template:Trim
(
edit
)
Template:U
(
edit
)
Module:Arguments
(
edit
)
Module:If empty
(
edit
)
Module:Wikidata
(
edit
)
Return to "InfoboxImage" page.