[00:55:05] hi I have a really quick novice question, if I unprivate a wiki will it still require users to sign up and be assigned a role to make edits? [00:57:10] Not inherently no, but you can set it to be so https://meta.miraheze.org/wiki/FAQ#Managing_permissions [01:10:20] whats the thing that lets you put source-visible text into media-wiki junk like templates without it affecting the code again [01:10:21] like [01:10:25] >! or something like that [01:21:03] `` [01:28:42] Are you referring to adding content to template pages or adding a comment like wired mentioned [01:30:48] i think its what wired mentioned [01:30:50] thanks wired [01:31:59] is it possible to apply js to a single page similar to how templatestyle can be used for css? [01:36:56] as long as you have a mediawiki js i think you can use `
` [01:37:34] actually nvm that would require it to be loaded on common.js still [01:55:22] [1/10] You can use [[mw:Extension:Gadgets]] to make a JS file that loads on specific namespaces. On the JS, to further limit it to a specific page, you write: [01:55:22] [2/10] ```js [01:55:22] [3/10] (($, mw) => { [01:55:23] [4/10] if (mw.config.wgPageName !== 'Something') { [01:55:23] [5/10] // exit the script [01:55:23] [6/10] return; [01:55:24] [7/10] } [01:55:24] [8/10] ... [01:55:24] [9/10] })(); [01:55:25] [10/10] ``` [01:55:25] [01:56:07] Technically you can write the JS on Common.js as well, but then that JS would be loaded on all pages [03:28:53] Enlightening [03:53:22] [1/2] For very short JS it might be easier to write it in common.js or make a gadget that loads on all pages to not split the cache. [03:53:22] [2/2] The performance impact is probably negligible either way though. [04:50:02] [1/2] So, this is going to sound silly, but how exactly does moderation work? [04:50:03] [2/2] I want a setup such that all edits need to be approved by me, except maybe a list of users I pick at some point. Do I need the moderation extension? [04:51:22] Like I saw the thing about making it read-only for everyone, and I don't want that, I want like people to make provisional modifications that get approved [04:52:39] [1/9] even if you target a specific page on common.js like [04:52:39] [2/9] ```js [04:52:40] [3/9] var pagename = mw.config.get("wgPageName") [04:52:40] [4/9] $(function() { [04:52:40] [5/9] if pagename == "Diamond Block" [04:52:41] [6/9] blah blah blah [04:52:41] [7/9] }) [04:52:41] [8/9] ``` [04:52:42] [9/9] this will load on every page regardless? [04:58:12] [1/2] Make a wiki edit from an alt and see if goes into the moderation queue. Play around with the queue with your main account. [04:58:13] [2/2] (remember to declare on the user page that the account is an alt for testing purposes) [04:58:27] You spend bandwidth downloading that Common.js file yes [04:59:06] If you put a `return` then the code just stops executing basically [05:02:35] [1/2] Miraheze doesn't even have `$wgNativeImageLazyLoading` enabled by default. The bandwidth saved by not loading a JS snippet is negligible compared with that unless you bring in a big JS library in the script. [05:02:35] [2/2] I just saw a wiki page go from 12MB to 3MB of data transferred and 300 requests down to 70 requests on initial page load after enabling lazy loading. Makes me think we should make it a default for new wikis. [05:02:59] [1/3] Wondering if I could request an additional feature to FilterTable. [05:03:00] [2/3] An additional parameter you can set to FilterTable/row that when set, allows the button to be clicked 3 times instead of twice, with the 2nd click removing those rows from the table instead of showing only those rows. [05:03:00] [3/3] Currently first click shows only those rows and highlights the button, second click removes it. This would allow the filter to take an additional click before removing that marks the button rod and removes those rows that contain the phrase from the list [05:08:03] This isnt much of an issue when you have only a few options, but in a case like mine when a filter can have 20+ options and growing, clicking each one besides the one u dont want isnt very ideal [05:11:24] What does and doesn't get cached by the CDN? I was acting on the assumption that ResourceLoader modules get cached by the CDN, so MH-client bandwidth shouldn't matter. [05:13:06] [1/5] I feel like the 3-click idea results in bad UX because it's counterintuitive. [05:13:06] [2/5] What could happen is we tweak the "All" button. Instead of highlighting the "All" button itself, it'll select all options for the user. Any subsequent clicks will deselect the option and remove corresponding rows from the table. [05:13:06] [3/5] This seems nontrivial to implement mostly due to [05:13:06] [4/5] 1. Trying to avoid breaking changes to existing templates that rely on the "all" button. [05:13:07] [5/5] 2. We need to make it easy to both "select a single option" and "select all options except 1", which may require 2 buttons to "select all" and "select nothing". [05:16:08] Reworking the all button would work great. Instead of it being more of a reset botton (like the already existing reset all button) it could work more a switch. Selecting it would show all options, but selecting a specific option while all is highlighted would hide that option [05:18:07] [1/2] Yes, RL modules are cached, and so are images. Having too many eagerly loaded images on a page could result in a bad user experience, though. For example, on [a wiki without lazy loading](https://bluearchive.wiki/wiki/Shiroko/gallery), over 100 images are loaded before some js RL modules. On a slower connection, the user must wait for images that don't matt [05:18:07] [2/2] er to the initial page view at all to load before js is allowed to load. [05:19:00] These images also seem to be render-blocking which is doubly bad. Most of them do not need to be render-blocking at all. [05:22:21] Adding `wgNativeImageLazyLoading` to my TODO list. I think I have at least 10 wiki config changes that can go into a RfF now. It's amazing how much our default wiki config (inherited from MW defaults) can be improved. [05:24:06] Oh right that part of image loading [05:24:27] Does MediaWiki even have a way to mark an image as `async`? [05:30:02] [1/3] I'd imagine it switching between "Show all" and "Hide all" when clicked. No going to work on this now because I was planning to deal with `nofollow` in MirahezeMagic once I get home. Do remind me about this if I never get to it though. Maybe submit an issue on https://github.com/lihaohong6/MirahezeDevScripts/issues as a reminder. [05:30:03] [2/3] Unfortunately there is no way to track these sort of feature requests. I would love to see us have a small team of css/js experts who can write scripts of global interest like Dynamic Categories, FilterTable, and [Fandom script ports](https://ccxtwf.github.io/MirahezeDevScripts/). The team could share some infra with the tech team (e.g. issue tracker) and pro [05:30:03] [3/3] vide much-needed tech help to wikis with many editors but few technical-minded people. One can dream. [05:31:10] One day [05:32:53] I'll leave something on the tracker tomorrow, I appreciate it [05:33:09] [1/2] I think `decoding="async"` is done by default. Lazy loading (which is what makes the difference here) is controlled by `$wgNativeImageLazyLoading` which we set to false by default. [05:33:09] [2/2] As for fine-grained control. There is no built-in mechanism for per-file controls, though Extension:ImgTag supports that attribute. [12:20:49] Does the dormancy policy apply to all edits or only articles (main)? [12:21:09] it weighs activity over the entire wiki [12:21:16] the only things excluded is stuff like global rename actions [12:21:21] Oh, nice [12:26:33] Does that include user wiki visits? [12:27:09] visits don't weigh in at all no [12:27:47] that's in the range where if its known there is strong traffic as seen in the analytics, or you know there's a core audience that uses it as a reference, an exemption may be appropriate [12:27:59] if onwiki activity can't hold it up well enough [12:28:58] yeah that's okay, I'm setting up the wiki first before going all-in with the content [12:31:32] yeah, no trouble there, even a non-edit logged action that you do (managewiki for example) will reset the clock [12:51:31] +1 if you want to start an RfF for that. Another idea for the RfF could be to remove some special pages as default extensions (e.g. urlshortener) to avoid clankers clicking those links unnecessarily (unless that's now fixed?) [13:07:54] Depending on the scope, this might be able to work in parellel with Skye's (in drafting stages) [proposed global group]()? [13:35:15] HI JANE!!! :Hello: [13:53:36] [1/6] @pskyechology a few comments about this proposal: [13:53:36] [2/6] - I think it's worth putting in the comments from https://discord.com/channels/407504499280707585/1225560610628964423/1488577040646148298 about why it's different to options that already exist [13:53:36] [3/6] - I'm not sure entirely the allowable scope. I recently did some tech stuff to kill `img_auth.php` usage from a few public wikis; would doing that with my volunteer account be within the scope of interface specialist or would it still have to be a tech action? [13:53:37] [4/6] - I don't particularly see the relation between interface specialist and tech. To me, tech is more of a backend thing while interface specialist is more of a frontend thing. [13:53:37] [5/6] - For grandfathering, it would help to see a list of current users with that role. I know there's me, Jane, PetraMagna and canada but I don't know if there are any others. [13:53:37] [6/6] - If you're making a JS thing that uses a JSON page then there's probably a use case for JSON, I don't see a particular reason to deny the edit JSON right [14:16:44] Hello! a:pikachuWave: [15:21:45] I uploaded an image, then uploaded a revision that was cropped in, and MediaWiki is still using the non-cropped version in the articles that use it and in the media viewer. I tried ?action=purge on the PNG and on the article, but that didn't help. Any ideas? [15:22:52] Try `ctrl+f5` maybe? [15:23:01] That generally fixes it for me [15:24:21] Does also `?debug=2` affix it? [15:26:41] How have you been doing? :] [15:26:42] [1/5] it's fetching https://static.wikitide.net/blueovalwiki/thumb/8/80/Mdx_icon.png/600px-Mdx_icon.png and getting the wrong image [15:26:42] [2/5] if I append ?cache=purge to that it gets the correct image [15:26:42] [3/5] https://static.wikitide.net/blueovalwiki/thumb/8/80/Mdx_icon.png/600px-Mdx_icon.png?cache=purge [15:26:43] [4/5] but it's still cached [15:26:43] [5/5] I tried in a different browser so it's not client-side [15:27:00] oh what discord embed has the fixed version for both [15:27:10] local edge server or something? [15:28:38] [1/2] Likely just cached in some spot you can't refresh, happens sometimes [15:28:38] [2/2] It'll fix itself eventually then, shouldn't take more than a day [15:30:24] Is there a reason for https://www.mediawiki.org/wiki/Extension:NumberFormat not being installed? Or is there another way to achieve the same result, I am not seeing? (Mainly the thousand seperator I am looking at right now) [15:34:08] `formatnum` magic word might help: https://www.mediawiki.org/wiki/Help:Magic_words#formatnum [15:34:22] buried under work 😭 augh [15:34:32] Oof :[ [15:34:50] Doesn't seem to give the same control though, but rather relies on page language to auto-determine what is used, from what I can tell [15:40:00] typically the more accessible way to do it, could also request it via [Phorge]() [15:40:47] Although given that it hasn't been updated since 2017 I'm not sure how it'll go [15:42:51] Yeah, I know of that, mainly asking here if there is like a known security vulnerability or some other reason, to not waste people's time more than necessary [15:44:07] No worries - I don't see it on the list of [declined extensions]() and didn't see anything when searching Phorge so it's likely it's never been requested [15:44:18] (Though I could be wrong) [17:11:02] is there a recommended way to setup a Discord webhook in my own server for my wiki? [17:11:28] for recent changes? [17:11:57] yeah, like a live feed of changes [17:12:09] similar to #global-wiki-feed or something but scoped to my wiki [17:12:44] go to managewiki/settings on ur wiki and type "discord" into the search bar [17:12:51] there should be a box to enter a discord webhook [17:31:13] hmm, that doesn't seem to be working for me [17:32:50] if u put a webhook into the box that asks for it, it will work [17:33:44] setting $wgDiscordAdditionalIncomingWebhookUrls [17:33:52] [1/2] https://cdn.discordapp.com/attachments/407537962553966603/1493665606921359491/Screenshot_2026-04-14_at_1.33.28_PM.png?ex=69dfcbff&is=69de7a7f&hm=3a1cd6f5449c2992c74e089974c29ee6f43fff1543ac7448f811d1a39739a8bb& [17:33:52] [2/2] https://cdn.discordapp.com/attachments/407537962553966603/1493665607357562951/Screenshot_2026-04-14_at_1.33.44_PM.png?ex=69dfcbff&is=69de7a7f&hm=c21e4c7563dce8c6747025f415e086bded40bfd6e107fc67f3134c8484d35633& [17:34:04] made sure it saved, made an edit, no notification [17:34:13] give it a few mins [17:34:38] ManageWiki always takes a bit to save your changes [17:34:40] oh it just takes a few minutes, works now, thanks! [17:39:03] static.wikitide.net gets cached by cloudflare, you're seeing the cached version [17:43:31] Was the idea of adding cachebusters to file URLs floated around before [17:49:10] How can I invite women to my wiki? [17:49:42] sob [17:50:38] If you look around for Lua modules you can probably find some that work about as well as the extension. [17:50:38] excuse me? [17:52:11] I did try and look around on on the dev wiki, but wasn't able to really find any. Do you have a name or even a link for such module? [17:52:30] Yep. Url Shortener and CiteThisPage are on the list of extensions to remove from the default config. The `nofollow` patch only _discourages_ good-behaving search engine crawlers from visiting a link. It doesn't prevent bad actors from doing it (and search engines can still be silly and ignore the `nofollow` directive). [17:54:07] https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#mw.language:formatNum [17:55:15] There's also https://en.wikipedia.org/wiki/Module:Math#precision_format [17:55:33] Great question [17:56:14] don't engage with it [17:56:43] My bad, Im an easy reel [17:57:16] I've heard this isn't supported on miraheze? [17:57:27] or I might be thinking of smth different [17:57:54] You might be thinking of NumberHeadings [17:58:01] I was wanting to install the extension that allows adding trailing zeros [17:58:21] okay no that's not NumberHeadings [17:58:44] My crat stated that it didn't appear to be supported on miraheze [17:58:47] lemme find the message [17:59:36] isn't that just `%.2f`? [17:59:37] Well define "not supported", as yes as I stated it is indeed not installed on MH currently, but I was asking if there were a specific reason, or it just one noone bothered to look at before [17:59:41] ah it was NumberFormat [17:59:57] in wikitext? [18:00:06] In lua `string:format` [18:00:42] Module:String? [18:01:22] How would that call look if I did `{{#invoke:String|format|...}}` [18:01:50] or is string a completely separate extension [18:02:07] the actual function like `("%.2f"):format(0)` I think [18:02:13] lemme check that works first [18:02:20] I mean... it is pretty common knowledge to not grab things directly from wikipedia, just too much of a dependency hell. And the link above is the raw lua documentation, which while I probably COULD, write it myself, I rather no, I really don't like working with the language, nor am I very good at it, in the first place [18:03:00] [1/3] ``` [18:03:01] [2/3] = ("%.2f"):format(0) [18:03:01] [3/3] 0.00``` [18:03:27] or you could do `string.format("%.2f", 0)` which means the same thing [18:03:49] Oh [18:03:58] yzxs is my minion right [18:04:27] First person to ever refer to me by my username [18:04:44] do I call you  minion [18:05:02] And how would I call this in wikitext? [18:05:07] Sorry i'm a little confused [18:06:16] Because to my knowledge our wiki has no currently used extension/lua module that messes with numbers like that other than like Module:String [18:06:31] Sure [18:06:33] [[mh:battlecats:module:String]] contains a `format` function, you can copy that [18:06:34] [18:07:22] Oh sick i'll def look into it [18:08:21] because currently i'm using an unholy mix of explode pos and len [18:09:08] https://cdn.discordapp.com/attachments/407537962553966603/1493674483695747204/IMG_6524.png?ex=69dfd444&is=69de82c4&hm=2b0ea448bb0432e313e2e7997173fad0c514219fbf680af72c0e6c3ad20a3b29& [18:09:31] the page name is just the version number [18:09:43] oh my GOD [18:09:52] Wikipedia has a project for women. [18:12:31] If you do request this extension, my personal response (not representing tech as a whole) would be that we prefer to not install extensions when the same functionality can be achieved fully through a Lua module. Each extension adds maintenance burden to tech and we prefer to have less of them if possible. [18:13:00] no I'm 300% with you [18:13:24] we cannot and should not carry the maintenance burden of all 300+ extensions with us [18:13:36] 300 [18:13:40] that's alot [18:14:01] Can anyone help me see why my js doesn't work on my site? [18:14:13] That particular module has 2 dependencies which are some of the most commonly used modules (arguments and yesno). The module can also be used directly with `{{#invoke:math|precision_format|value_string|precision}}`so there is no need to write Lua yourself. [18:20:13] [1/2] The view source on that page tells a different story from that though, I see like 30 or so modules listed maybe, let alone about just as many templates as well. [18:20:14] [2/2] Or are you saying I can use it without having to import it first??? That is not how things works from what I learned over the years, but I could be entirely wrong ofc. [18:20:54] [1/2] ? Which 30 modules [18:20:54] [2/2] https://cdn.discordapp.com/attachments/407537962553966603/1493677441397297303/image.png?ex=69dfd705&is=69de8585&hm=185e029c7c942c69727671f4f342b395d8c79aafd6addef0fe670388f9b32fef& [18:21:25] There are exactly two calls to require() in that module and those are Module:Arguments and Module:Yesno [18:21:43] needforspeed.miraheze.org/wiki/MediaWiki:Common.js [18:46:30] hi [19:27:20] the heck is module yesno\ [19:30:38] [1/4] basically converts for example a wikitext `"yes"` into Lua `true`, so if you want to have a template with a toggle then you can use yesno to interpret the toggle. e.g. ``` [19:30:38] [2/4] ... [19:30:38] [3/4] |thisfeature = on [19:30:39] [4/4] }}``` [19:31:14] OH [19:31:15] that [19:31:18] actually makes a lot of snese [20:38:49] we now have User:𝓢𝓪𝓵𝓪𝓭 𝓓𝓻𝓮𝓼𝓼𝓲𝓷𝓰 [21:01:16] Cheese doodle mac and cheese [21:06:47] !mute 1182059232951013478 3d Ignoring direct warnings to take nonsensical messages elsewhere [21:07:02] ...... [21:22:32] What's the recommended approach for getting Wikipedia-style citations [21:22:46] I thought to myself "oh, I'll just export + import Template:Citation etc. [21:22:50] this uh... has not gone well [21:22:58] importing half of wikipedia at this point [21:23:33] Yeah.. importing Wikipedia is rarely a good idea [21:24:03] is there a way to like quickly undo that import [21:24:57] Special:Nuke maybe? [21:25:00] rollback [21:26:14] I don't think nuke deals well with imported stuff [21:28:00] I mean like in Special: Recent changes there lists a nice dropdown and everything is under "Import log" [21:28:08] so there's got to be some way to just undo that entirely [21:28:36] I think jswikibot has an option to delete stuff straight from the logs [21:28:55] not entirely sure if it works for import [21:29:22] did you import just pages [21:29:29] templates yea [21:29:50] oh also Modules [21:30:12] how many [21:30:45] 269 [21:33:05] [1/2] Yes it does. [21:33:06] [2/2] https://cdn.discordapp.com/attachments/407537962553966603/1493725805745012847/image.png?ex=69e00410&is=69deb290&hm=cca126a4a79f804f86b5f0dcf20891db3770048e177a967dfd02bd0e7f3c2f62& [21:33:28] [1/2] Something like this. [21:33:28] [2/2] https://cdn.discordapp.com/attachments/407537962553966603/1493725907058299010/image.png?ex=69e00428&is=69deb2a8&hm=63417bae1c68048daf8af34e16ee79d72dc0bda1ab343294d6ced2ae3386283e& [21:34:27] yep, that seems to be working, did import log user jjtech and after half an hour ago [21:34:39] 269 Jesus....... [21:44:19] what's the recommended way to get just citation-style-1 citations [21:45:02] also, can I add IABot or similar to archive all links? [22:00:33] There is a citation template on dev https://dev.miraheze.org/wiki/Template:Citation, which depends on https://dev.miraheze.org/wiki/Template:Citation/core, which itself has several dependencies. This should be a bit easier to manage. [22:02:14] should I Include all templates and transcluded pages or not? [22:06:06] [1/2] Don't. It'll include documentation templates as well. [22:06:06] [2/2] Just copy-paste the titles of the explicitly specified dependencies to Special:Export. [22:12:18] Citation seems to choke on {{filepath: }} links [22:31:51] does the visual editor have an option for spoiler text, or is the standard way of quickly incorporating it to use templates [22:47:05] Visual Editor does not have a built-in way to spoiler text without the use of templates [22:51:08] Danke [22:51:23] is there any guidance on making a wiki not indexed by search engines? I don't want it to be private, but I don't want it super visible [23:02:13] does [[help:SEO]] exist or does there have to be a redirect [23:02:14] [23:05:03] [1/2] I was gonna say look at our SEO guides and do the opposite but I don't really have the energy to read them so uh [23:05:03] [2/2] if you go to https://meta.miraheze.org/wiki/Special:ManageWiki/namespaces/0 (but on your wiki) and change `$wgNamespaceRobotPolicies` to `noindex,nofollow` then you should be able to get it not indexed. [23:05:16] and then do something similar for other namespaces [23:05:36] ty [23:15:42] question: if i were to upload an image to file:img, would that have any adverse effects? [23:33:32] im having my money stolen every month by wikitide and i dont know where to go and i have no account, can i be directed where to go? [23:35:25] you've donated then [23:35:33] either paypal or stripe or github sponsors [23:35:38] one of them will be the place to manage it iirc [23:35:48] depends which one you donated first with [23:36:14] it wasnt wirh either of them [23:36:19] ir was google pay [23:36:34] I think this might warrant a @wikitideharej ping [23:42:21] yeah stripe recurring payments must be cancelled manually by harej or whoever else has access [23:42:54] not a we're greedily taking your money issue but rather stripe being stripe [23:43:06] just use github sponsors whereever you can [23:44:11] Fudge. [23:44:24] I think i used stripe, im doomed [23:44:47] i didnt use an email too [23:45:12] classic middle men [23:45:35] I'm not sure the exact details but I think harej should be able to sort it out [23:46:10] thank goodness [23:50:08] [1/2] @leshyy message @wikitideharej with the information you have [23:50:09] [2/2] the details from an outgoing payment should be enough, stripe usually includes a code or similar in the reason [23:50:55] i'll send what i have [23:51:28] though, i didnt get an email [23:51:46] or anythint from stripe reallly