MediaWiki talk:Common.js/Archive 17: Difference between revisions

Content deleted Content added
SmackBot (talk | contribs)
m Subst: {{unsigned}} (& regularise templates)
 
(6 intermediate revisions by 6 users not shown)
Line 18:
::: Also, I'll point you to this [[Wikipedia:Village_pump_(technical)#portable_devices|Village Pump Thread]] ... and you start to see why we started a redirect. --[[User:Hcatlin|Hampton]] ([[User talk:Hcatlin|talk]]) 15:45, 26 June 2009 (UTC)
 
::::At the very least, dropping a notice on the talkpage here with links to relevant discussions (or noting that such discussions took place on IRC) would be nice, since some of us who watch this page do not, in fact, watch VPT or the IRC channels (shock! =O ). <span style=white-space:nowrap>「[[User:Dinoguy1000|<span style=color:#00f>ダイノ</span><span style=color:#080>ガイ</span>]][[Special:Contributions/Dinoguy1000|<span style=color:#F90>千?!</span>]]」<sup>[[Help:JP|?]] · [[User talk:Dinoguy1000|<small style=font-weight:normal>Talk⇒Dinoguy1000]]</supsmall>]]</spansup></span> 11:00, 27 June 2009 (UTC)
 
The Mobile Redirect code cannot go into an import because we need it to load before all of the other assets on the page. If you do an import, the page renders on the mobile device and THEN redirects which is angering a lot of users. Until the sysadmins get a chance to implement the redirect outside of Javascript, Brion and I have agreed this is best. --[[User:Hcatlin|Hampton]] ([[User talk:Hcatlin|talk]]) 21:19, 30 July 2009 (UTC)
:Thank you for leaving a note on the talk page. :-) --[[User:MZMcBride|MZMcBride]] ([[User talk:MZMcBride|talk]]) 22:23, 30 July 2009 (UTC)
:I echo MZMcBride's thanks, I greatly appreciate you taking the time to leave an explanation here (I can't speak for anyone else who watches this page, but I'm sure they do, too). =) <span style=white-space:nowrap>「[[User:Dinoguy1000|<span style=color:#00f>ダイノ</span><span style=color:#080>ガイ</span>]][[Special:Contributions/Dinoguy1000|<span style=color:#F90>千?!</span>]]」<sup>[[Help:IJP|?]] · [[User talk:Dinoguy1000#top|Talk⇒Dinoguy1000]]</sup></span></span> 22:29, 30 July 2009 (UTC)
 
== More functional breakdown ==
 
Following the 2008 discussion [[MediaWiki talk:Common.js/Archive 14#Functional breakdown by size|Functional breakdown by size]] when <ttsamp>edits.js</ttsamp> etc. were created, I'm wondering if it's possible to move some other code into separate modules. Particularly, ''"IPv6 AAAA connectivity testing"'' code which is used about 1 out of 100 page views, and ''"Mobile browser helper link"'' which is used, I would estimate, by less than 1% of visitors. — [[user:Alex Smotrov|AlexSm]] 15:46, 24 June 2009 (UTC)
:Yeah, I don't see why not. I personally think Common.js should simply be a list of imports, that can be enabled or disabled as required, but that could just be me. For the IPv6, I presume you are suggesting that the contents of the main conditional simply be moved to another page and replaced by the import? If no one objects here in the near future, I'll go ahead and move that to (following the existing naming scheme, which I like) [[MediaWiki:Common.js/IPv6.js]]. I'd possibly suggest talking to the maintainers of the mobile redirect, as I know they are actively developing that based on MediaWiki changes and changes to the mobile site. [[User:Ale_jrb|<fontspan colorstyle="color: green">A</fontspan><small><fontspan colorstyle="color: green">le_Jrb</fontspan>]]</small>]]><sup>[[User_talk:Ale_jrb|<fontspan colorstyle="color: blue">talk</fontspan>]]</sup> 22:09, 24 June 2009 (UTC)
 
::I agree about the IPv6 code, and the mobile device code should also be moved to a subpage. Moving ''all'' the scripts to subpages is probably not a good idea--some scripts are simply needed too often to justify splitting them off. —[[User:Remember the dot|Remember the dot]] <sup>([[User talk:Remember the dot|talk]])</sup> 05:37, 26 June 2009 (UTC)
Line 38:
 
:To me, the problem is that we use way too much JavaScript. [[MediaWiki:Common.js/search.js|The Special:Search code]], the IPv6 test, and the main page fixes should be implemented in PHP and not in JavaScript at all. Also, JavaScript commonly used across many projects should be made part of MediaWiki's standard JavaScript features. While the Squid servers effectively prevent a PHP solution for the mobile devices code, if we eliminated all the other extraneous JavaScript then our site JavaScript as a whole wouldn't be so bad. —[[User:Remember the dot|Remember the dot]] <sup>([[User talk:Remember the dot|talk]])</sup> 02:04, 9 July 2009 (UTC)
::I moved the IPv6 code to another page, as there seemed to be no big issues with doing so. Common.js now stands at around 15Kb. [[User:Ale_jrb|<fontspan colorstyle="color: green">A</fontspan><small><fontspan colorstyle="color: green">le_Jrb</fontspan>]]</small>]]<sup>[[User_talk:Ale_jrb|<fontspan colorstyle="color: blue">talk</fontspan>]]</sup> 09:44, 9 July 2009 (UTC)
:::The IPv6 code was broken for Vector and other skins not compatible with Monobook. I have [http://en.wikipedia.org/w/index.php?title=MediaWiki%3ACommon.js%2FIPv6.js&diff=301855502&oldid=301160829 repaired this]. Mark is currently looking as to why the [http://ipv6and4.labs.wikimedia.org/ statistics pages] are not OK. Instant update, disk space on the server apparently ran out. I'll keep an eye out for when it gets fixed, and will try to leave a note here after it's repaired again. —[[User:TheDJ|Th<span style="color: green">e</span>DJ]] ([[User talk:TheDJ|talk]] • [[Special:Contributions/TheDJ|contribs]]) 13:34, 13 July 2009 (UTC)
 
Line 52:
: Someone apparently forgot what he wrote [[Wikipedia:Editing the interface|here]] ;) —''[[User:Ruud Koot|Ruud]]'' 01:38, 13 July 2009 (UTC)
 
::Yes, the fact that no edit to JavaScript is ''ever'' silent or unnoticeable... I haven't had a large fish slapped on my talk page yet, would someone like to oblige? <ttsamp>:D</ttsamp> <font color="forestgreen">[[User:Happy-melon|'''Happy''']]</font>‑<fontb color="darkorangeforestgreen">Happy</b>]]‑[[User talk:Happy-melon|'''<b color="darkorange">melon''']]</fontb>]] 12:58, 13 July 2009 (UTC)
 
:::I obliged! =D <span style=white-space:nowrap>「[[User:Dinoguy1000|<span style=color:#00f>ダイノ</span><span style=color:#080>ガイ</span>]][[Special:Contributions/Dinoguy1000|<span style=color:#F90>千?!</span>]]」<sup>[[Help:IJP|?]] · [[User talk:Dinoguy1000|<small style=font-weight:normal>Talk⇒Dinoguy1000]]</supsmall>]]</spansup></span> 21:37, 13 July 2009 (UTC)
 
:::This is quite enough. You started a thread on a talk page, didn't gain any type of consensus for the feature, and then added code to Common.js citing the discussion you started. What? Where in this chain of events did this seem like it was following any kind of guideline? This is simply unacceptable. --[[User:MZMcBride|MZMcBride]] ([[User talk:MZMcBride|talk]]) 19:01, 14 July 2009 (UTC)
Line 66:
: Perhaps the warning that appears when you try to edit this page should be tweaked to encourage a little more though before making a bold edit and state the possible consequences of introducing errors on this page (e.g. popping up an error box for 75% of all visitors.) And maybe be it should be red and blinking as well :p —''[[User:Ruud Koot|Ruud]]'' 22:48, 14 July 2009 (UTC)
::How about
{{fmbox
{{Site| JStype = editnotice}}
::?? <font color="forestgreen">[[User:Happy-melon|'''Happy''']]</font>‑<font color="darkorange">[[User talk:Happy-melon|'''melon''']]</font> 12:53, 17 July 2009 (UTC)
| image = [[File:Finger pointing.jpg|60px]]
:::I like it; it's slightly amusing yet clearly serious. I'd put the whole first sentence in bold, personally, as that's the really important part. [[User:Ale_jrb|<font color="green">A</font><small><font color="green">le_Jrb</font>]]</small><sup>[[User_talk:Ale_jrb|<font color="blue">talk</font>]]</sup> 13:08, 17 July 2009 (UTC)
| text = There is no such thing as a 'trivial' or 'unnoticeable' change to the site JavaScript. Test the ''exact'' change on IE, Firefox, Safari and Chrome, ''twice'' (since you'll have forgotten to get the recached files the first time), because [[sod's law]] says you'll break something if you don't. Save yourself the [[Wikipedia:Whacking with a Wet Trout|embarrassment]] and [[Wikipedia:Village stocks|humiliation]]. Discuss your changes on the [[{{TALKPAGENAME}}|talk page]] before implementing them.
::::Same here. Give me a minute, and I'll tweak the wording, too. =) <span style=white-space:nowrap>「[[User:Dinoguy1000|<span style=color:#00f>ダイノ<span style=color:#080>ガイ]][[Special:Contributions/Dinoguy1000|<span style=color:#F90>千?!]]」<sup>[[Help:IJP|?]] · [[User talk:Dinoguy1000#top|Talk⇒Dinoguy1000]]</sup></span></span> 18:52, 17 July 2009 (UTC)
}}
::?? <font color="forestgreen">[[User:Happy-melon|'''Happy''']]</font>‑<fontb color="darkorangeforestgreen">Happy</b>]]‑[[User talk:Happy-melon|'''<b color="darkorange">melon''']]</fontb>]] 12:53, 17 July 2009 (UTC)
:::I like it; it's slightly amusing yet clearly serious. I'd put the whole first sentence in bold, personally, as that's the really important part. [[User:Ale_jrb|<fontspan colorstyle="color: green">A</fontspan><small><fontspan colorstyle="color: green">le_Jrb</fontspan>]]</small>]]<sup>[[User_talk:Ale_jrb|<fontspan colorstyle="color: blue">talk</fontspan>]]</sup> 13:08, 17 July 2009 (UTC)
::::Same here. Give me a minute, and I'll tweak the wording, too. =) <span style=white-space:nowrap>「[[User:Dinoguy1000|<span style=color:#00f>ダイノ</span><span style=color:#080>ガイ</span>]][[Special:Contributions/Dinoguy1000|<span style=color:#F90>千?!</span>]]」<sup>[[Help:IJP|?]] · [[User talk:Dinoguy1000#top|Talk⇒Dinoguy1000]]</sup></span></span> 18:52, 17 July 2009 (UTC)
== border="1" in tables ==
 
Last year we [http://en.wikipedia.org/w/index.php?title=MediaWiki:Common.js/edit.js&diff=233046900&oldid=226600579 hacked] the formatting of wikitables to help them appear with borders when rendering in environments without CSS (see [[MediaWiki_talk:Common.css/Archive_5#Wikitable_borders_without_CSS|discussion]]). Now that is coming round to bite us: with the recent wikitech-l thread supporting a move to [[HTML 5]] ([http://lists.wikimedia.org/pipermail/wikitech-l/2009-July/043865.html] and subsequent), we now have a horde of markup on enwiki that is going to become ''invalid'' [http://lists.wikimedia.org/pipermail/wikitech-l/2009-July/043865.html]; see the extensive discussion at {{bugphab|1882920829}}, which WONTFIXed the idea of applying this style more widely.
 
I don't think we should give ourselves the task of removing existing invalid attributes at this stage (things like <ttsamp>cellspacing</ttsamp>, <ttsamp>cellpadding</ttsamp> and even <ttsamp>align</ttsamp> are invalid HTML5); the shift from XHTML-1.0-transitional, which we use at the moment, is going to be very slow and steady, and these attributes will not ''break'' output, they will just cause validation errors. But it would be eminently sensible for us to stop continually making the problem ''worse'', by updating our documentation to encourage the correct formatting, and by reverting the change to [[MediaWiki:Common.js/edit.js]] which means every table added using the edit toolbar is added ''broken''. Thoughts? [[User:Also-Happy-melon|<small style="color:red">(also)</small>]]<font color="forestgreen">[[User:Happy-melon|'''Happy''']]</font>‑<fontb color="darkorangeforestgreen">Happy</b>]]‑[[User talk:Happy-melon|'''<b color="darkorange">melon''']]</fontb>]] 09:19, 24 July 2009 (UTC)
*I agree, no point in leaving that in. —[[User:TheDJ|Th<span style="color: green">e</span>DJ]] ([[User talk:TheDJ|talk]] • [[Special:Contributions/TheDJ|contribs]]) 11:00, 24 July 2009 (UTC)
*Well I think we should start by warning users about using the already deprecated (HTML4) font tag in their signatures **cough**. — [[User:Dispenser|Dispenser]] 11:29, 24 July 2009 (UTC)
*:''Ouch'' <tTsamp>:D</ttsamp> To be fair, I ''have'' been planning to change it ever since I heard about HTML5 and started looking into it, but I hadn't got around to it. First sig change since 2006!! It also deprecates {{tag|tt}}, which I use all the time... <tTsamp>:(</ttsamp> [[User:Also-Happy-melon|<small style="color:red">(also)</small>]][[User:Happy-melon|<span style="color:forestgreen">'''Happy'''</span>]]‑[[User talk:Happy-melon|<span style="color:darkorange">'''melon'''</span>]] 12:58, 24 July 2009 (UTC)
*Yikes, switching from XHTML will require reworking almost all Twinkle scripts. And not being able to use [[XPath]] any longer will suck as well. Hmpf, I guess I'll have a look at jQuery.<br>But anyway, yes, removing <code>border="1"</code> in anticipation sounds like a good idea. I'd suggest adding a rule to remove <code>border</code>, <code>cellpadding</code>, <code>cellspacing</code>, etc. to the AWB general fixes before long, too.<br>[[User talk:Amalthea|<span style="font-variant:small-caps;color:#832">Amalthea</span>]] 11:53, 24 July 2009 (UTC)
*:From the wikitech-l discussion (see also [[mw:HTML 5]]) we'll keep trying to serve valid XHTML-1.0 for a fair while longer, until we're totally sick-and-tired of bending over backwards and shouting at screen-scraping bots/scripts to start using the API. Certainly there should be plenty of crossover time with jQuery.<br/><code>class="wikitable" border="1"</code> can certainly be trivially removed by AWB. Cellpadding and cellspacing will be somewhat harder to deal with since they'll affect appearance if they're just blindly removed. [[User:Also-Happy-melon|<small style="color:red">(also)</small>]][[User:Happy-melon|<span style="color:forestgreen">'''Happy'''</span>]]‑[[User talk:Happy-melon|<span style="color:darkorange">'''melon'''</span>]] 12:58, 24 July 2009 (UTC)
Line 111 ⟶ 115:
 
I think adding toolbox link or a tab that says "request deletion" or "delete" for logged-in users who are viewing their own user subpages would be nice. It would just prepend {{tl|db-user}} with a quick edit after a confirmation dialog. Any thoughts? --[[User:MZMcBride|MZMcBride]] ([[User talk:MZMcBride|talk]]) 07:04, 18 October 2009 (UTC)
:As long as the confirmation dialog clearly explains what the link is, where it appears, and what it means, I'm all for it. <span style=white-space:nowrap>「[[User:Dinoguy1000|<span style=color:#00f>ダイノ</span><span style=color:#080>ガイ</span>]][[Special:Contributions/Dinoguy1000|<span style=color:#F90>千?!</span>]]」<sup>[[Help:IJP|?]] · [[User talk:Dinoguy1000#top|Talk⇒Dinoguy1000]]</sup></span> 18:26, 19 October 2009 (UTC)
 
== How to insert a <br> in the toolbar? ==
Line 120 ⟶ 124:
I'd like to disable the anontips banner ("Wikipedia is sustained by people like you. Please donate today.", etc.) before the start of the next fundraiser. This year's fundraiser banners will be particularly large and noticeable; there's really no need to clutter the reader's screen with multiple donate messages. In addition, the non-donate messages are stale and the break will hopefully give us some time to write fresh content. Any objections? --[[User:MZMcBride|MZMcBride]] ([[User talk:MZMcBride|talk]]) 00:37, 27 October 2009 (UTC)
 
: Forgot that we have [[MediaWiki:Monobook.css]] too. Probably good if change some of the more stagnant elements in the site. Looking at the code I came up with the following improvement to shave bytes by using wikilinking. <sourcesyntaxhighlight lang=javascript>div.innerHTML = message[whichMessage].replace(/\[\[([^[\]{|}]+)\]\]/g, "[[$1|$1]]").replace(/\[\[([^[\]{|}]+)\|(.+?)\]\]('??\w*)/g, '<a href="'+wgArticlePath+'" title="$1">$2$3</a>');</sourcesyntaxhighlight> It has the add benefit that the links work better on the secure server. Also, for accessibility we should be attaching this div to the end of the page so it isn't the first text read aloud by screen readers. — [[User:Dispenser|Dispenser]] 03:41, 27 October 2009 (UTC)
::Now we just a javascript implementation of the parser and we'll be set! — [[User:RockMFR|RockMFR]] 23:20, 27 October 2009 (UTC)
 
Line 129 ⟶ 133:
So we'll add "needs a code rewrite" to the list of reasons I've now [http://en.wikipedia.org/w/index.php?title=MediaWiki:Monobook.js&diff=prev&oldid=322588403 removed] the banner. Copied below for posterity and for improvements. --[[User:MZMcBride|MZMcBride]] ([[User talk:MZMcBride|talk]]) 19:26, 28 October 2009 (UTC)
{{collapse top}}
<sourcesyntaxhighlight lang="javascript">
/** Anon tips and donation banner **************************
*
Line 141 ⟶ 145:
if(wgUserName == null) addOnloadHook((function (){
var message=new Array();
message[0]='Your <a href="http://wikimediafoundation.org/wiki/Donate/Now/en?utm_source=enwiki_00&utm_medium=anon_donation_banner&utm_campaign=spontaneous_donation" class="extiw" title="wikimedia:Fundraising"><b>continued donations</b></a> keep Wikipedia running!';
message[1]='<a href="http://wikimediafoundation.org/wiki/Donate/Now/en?utm_source=enwiki_01&utm_medium=anon_donation_banner&utm_campaign=spontaneous_donation" class="extiw" title="foundation:Fundraising"><b>Make a donation</b></a> to Wikipedia and give the gift of knowledge!';
message[2]='Wikipedia is sustained by people like you. Please <a href="http://wikimediafoundation.org/wiki/Donate/Now/en?utm_source=enwiki_02&utm_medium=anon_donation_banner&utm_campaign=spontaneous_donation" class="extiw" title="foundation:fundraising"><b>donate</b></a> today.';
message[3]='Help us improve Wikipedia by <a href="http://wikimediafoundation.org/wiki/Donate/Now/en?utm_source=enwiki_03&utm_medium=anon_donation_banner&utm_campaign=spontaneous_donation" class="extiw" title="foundation:Fundraising"><b>supporting it financially</b></a>.';
message[4]='You can <a href="http://wikimediafoundation.org/wiki/Donate/Now/en?utm_source=enwiki_04&utm_medium=anon_donation_banner&utm_campaign=spontaneous_donation" class="extiw" title="wikimedia:Fundraising"><b>support Wikipedia</b></a> by making a tax-deductible donation.'
message[5]='Help us provide free content to the world by <a href="http://wikimediafoundation.org/wiki/Donate/Now/en?utm_source=enwiki_05&utm_medium=anon_donation_banner&utm_campaign=spontaneous_donation" class="extiw" title="foundation:Fundraising"><b>donating today</b></a>!';
message[6]='<a href="http://en.wikipedia.org/wiki/Wikipedia:Researching_with_Wikipedia" title="Wikipedia:Researching with Wikipedia">Learn more about using Wikipedia for research.</a>';
message[7]='<a href="http://en.wikipedia.org/wiki/Wikipedia:Ten_things_you_may_not_know_about_Wikipedia" title="Wikipedia:Ten things you may not know about Wikipedia">Ten things you may not know about Wikipedia.</a>';
Line 170 ⟶ 174:
}
}));
</syntaxhighlight>
</source>
{{collapse bottom}}
 
Line 178 ⟶ 182:
 
I think we could simplify this code from the function ''toggleNavigationBar''
<sourcesyntaxhighlight lang="javascript">
if ( hasClass( NavChild, 'NavPic' ) ) {
NavChild.style.display = 'none';
Line 185 ⟶ 189:
NavChild.style.display = 'none';
}
</syntaxhighlight>
</source>
to
<sourcesyntaxhighlight lang="javascript">
if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent') ) {
NavChild.style.display = 'none';
}
</syntaxhighlight>
</source>
 
and this one
<sourcesyntaxhighlight lang="javascript">
if (hasClass(NavChild, 'NavPic')) {
NavChild.style.display = 'block';
Line 201 ⟶ 205:
NavChild.style.display = 'block';
}
</syntaxhighlight>
</source>
to
<sourcesyntaxhighlight lang="javascript">
if (hasClass(NavChild, 'NavPic') || hasClass(NavChild, 'NavContent')) {
NavChild.style.display = 'block';
}
</syntaxhighlight>
</source>
 
What do you think? [[User:Heldergeovane|Helder]] ([[User talk:Heldergeovane|talk]]) 18:47, 29 October 2009 (UTC)
:No objections. Though realistically, it won't make much of a difference in both speed and size of the script. —[[User:TheDJ|Th<span style="color: green">e</span>DJ]] ([[User talk:TheDJ|talk]] • [[Special:Contributions/TheDJ|contribs]]) 19:49, 29 October 2009 (UTC)
::Or maybe all this part
<sourcesyntaxhighlight lang="javascript">
// if shown now
if (NavToggle.firstChild.data == NavigationBarHide) {
Line 237 ⟶ 241:
NavToggle.firstChild.data = NavigationBarHide;
}
</syntaxhighlight>
</source>
::could be changed to
<sourcesyntaxhighlight lang="javascript">
for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
if (hasClass(NavChild, 'NavPic') || hasClass(NavChild, 'NavContent')) {
Line 245 ⟶ 249:
}
}
</syntaxhighlight>
</source>
::It seems a lot simpler, isn't? ;-) [[User:Heldergeovane|Helder]] ([[User talk:Heldergeovane|talk]]) 18:20, 30 October 2009 (UTC)
:::Add the forgotten <code>NavToggle.firstChild.data = ...</code> and then your code is very similar to what I had for a year in [[:ru:MediaWiki:Common.js]] (collapseDiv() function), so naturally I support this simplification. However, the en.wp style of JS programming seems to be "the more lines of code, the merrier". — [[user:Alex Smotrov|AlexSm]] 19:31, 30 October 2009 (UTC)
Line 251 ⟶ 255:
 
As currently being discussed under [[Wikipedia:Village_pump_(technical)#Special:Myskin.js.2F.css_.3F]] I would like to add some short code to dynamically replace ''Special:MySkin.js'' links with ''Special:MyPage/skin.js'' links (with "skin" being the current skin of the user, same for .css). The code can be found on [[User:Cacycle/myskinify.js]] (install using importScript('User:Cacycle/myskinify.js');). This would allow linking to users skin.js and skin.css pages independent of the skin they are currently using. It will help with the confusion of the upcoming change of the default skin from monobook to vector. This is meant to be a quick and temporary fix until Special:MySkin gets hardcoded into MediaWiki. The short code works under all skins and with the current versions of Firefox, Chrome, Opera, and IE. The execution time should be negligible and I do not think it would interact with any existing script or gadget. [[User:Cacycle|Cacycle]] ([[User talk:Cacycle|talk]]) 03:08, 16 October 2009 (UTC)
:How does the script handle junk titles (e.g. ''Special:MySkin'' or ''Special:MySkin.jsl''), or does it just ignore these? <span style=white-space:nowrap>「[[User:Dinoguy1000|<span style=color:#00f>ダイノ</span><span style=color:#080>ガイ</span>]][[Special:Contributions/Dinoguy1000|<span style=color:#F90>千?!</span>]]」<sup>[[Help:IJP|?]] · [[User talk:Dinoguy1000#top|Talk⇒Dinoguy1000]]</sup></span> 18:37, 16 October 2009 (UTC)
::Correctly, from what I can tell. Try it: [[Special:MySkin.js]] [[sPeCiAl:mYsKiN.CsS]] [[Special:MySkin.FOO]]. Just execute <code>javascript:void(importScript('User:Cacycle/myskinify.js'))</code> in your browser's address bar while on this page to see what it does.<br>There's a rather hypothetical issue since it doesn't check the target ___domain, so if I post an external link like http://example.com?q=special:myskin.js it will do its magic, too, without even showing it. That's rather harmless, worst I can do with that is build a link to a server I have access to to collect statistics about what skin a user has. [[User talk:Amalthea|<span style="font-variant:small-caps;color:#832">Amalthea</span>]] 19:11, 16 October 2009 (UTC)
 
:I think it would be much better to catch these links at the destination page, i.e. [[Special:MySkin.js]] and [[Special:MySkin.css]]. This way it would take almost zero processing time on all other pages, only 2 lines in Common.js and the rest will be in a separate script:
<sourcesyntaxhighlight lang="javascript">
if (wgCanonicalNamespace=='Special' && /myskin\.(js|css)/i.test(wgTitle))
importScript('MediaWiki:Common.js/myskin.js')
</syntaxhighlight>
</source>
:P.S. Could you please elaborate on the "upcoming change to vector"? — [[user:Alex Smotrov|AlexSm]] 19:14, 16 October 2009 (UTC)
:: Drawback is that they stay redlinked. And the upcoming change is I guess that it will be made the default skin at some point. [[User talk:Amalthea|<span style="font-variant:small-caps;color:#832">Amalthea</span>]] 19:21, 16 October 2009 (UTC)
Line 264 ⟶ 268:
:: Alex: That is a good idea. But if you run the script on the [[Special:MySkin.js]] page, then the links to that page will be red and you have to execute a redirect. From my understanding, vector will soon become the default skin, thereby replacing monobook. It is already in public beta testing (see the "Try Beta" link at the top of the page. [[User:Cacycle|Cacycle]] ([[User talk:Cacycle|talk]]) 19:54, 16 October 2009 (UTC)
 
:::I don't see "always red" as a huge drawback, considering that "always blue" approach seems to be equally wrong. Anyway, we could use [[special:mypage/myskin.js]] blue links and import the redirecting script at <ttsamp>/myskin.js</ttsamp> user pages. — [[user:Alex Smotrov|AlexSm]] 20:25, 16 October 2009 (UTC)
 
:::Vector skin is only a part of beta interface, and it's possible it will stay optional unlike beta toolbar. — [[user:Alex Smotrov|AlexSm]] 20:25, 16 October 2009 (UTC)
Line 272 ⟶ 276:
Alex's [[Special:MyPage/MySkin.js]] / [[Special:MyPage/MySkin.css]] is a good sugestion: it generates blue links, it would need much less unnecessary code execution, and it would be the only reasonable forward-compatible solution that I can think of. I will create a test implementation later tonight. And if developers decide to implement [[Special:MySkin.js]] and [[Special:MySkin.css]] then we could update the links I guess :-) [[User:Cacycle|Cacycle]] ([[User talk:Cacycle|talk]]) 00:24, 17 October 2009 (UTC)
 
: Check this: <ttsamp>importScript('[[User:Cacycle/myskinforward.js]]');</ttsamp> [[User:Cacycle|Cacycle]] ([[User talk:Cacycle|talk]]) 03:58, 17 October 2009 (UTC)
 
:: Any opinions against adding these few lines of code to Common.js? [[User:Cacycle|Cacycle]] ([[User talk:Cacycle|talk]]) 12:31, 20 October 2009 (UTC)
:::I had a read through, checked the code. It all looks fine to me, and I would have no issue with the code being added. [[User:Ale_jrb|<fontspan colorstyle="color: green">A</fontspan><small><fontspan colorstyle="color: green">le_Jrb</fontspan>]]</small>]]<sup>[[User_talk:Ale_jrb|<fontspan colorstyle="color: blue">talk</fontspan>]]</sup> 17:34, 20 October 2009 (UTC)
:::: I will go ahead and add this code if nobody objects. I will also go ahead and document the new functionality on the relevant pages. [[User:Cacycle|Cacycle]] ([[User talk:Cacycle|talk]]) 21:58, 29 October 2009 (UTC)
::::: Added. [[User:Cacycle|Cacycle]] ([[User talk:Cacycle|talk]]) 16:30, 31 October 2009 (UTC)
Line 336 ⟶ 340:
:I don't really have strong views one way or the other. If forced to pick, I would suggest leaving the code as it is, though I do think it's important to consider both sides the debate. Just some food for thought. --[[User:MZMcBride|MZMcBride]] ([[User talk:MZMcBride|talk]]) 09:04, 10 November 2009 (UTC)
 
::MediaWiki renders the HTML output, which is then run through [[HTML Tidy]] to do some cleanup. We should not rely on HTML Tidy to do this, as content is reused on other wikis where HTML Tidy is not implemented. We are slowly moving towards HTML 5, where &lt;br> is correct.[http://www.w3.org/TR/html5/semantics.html#the-br-element] but, we currently set the DOCTYPE to XHTML 1.0 Transitional, where &lt;br /> is correct. ---'''''—&nbsp;[[User:Gadget850|<span style="color:gray">Gadget850&nbsp;(Ed)</span>]]<span style="color:darkblue">&nbsp;</span>'''''</span><sup>[[User talk:Gadget850|''talk'']]</sup> 12:17, 10 November 2009 (UTC)
:::Agreed, though I think it is a non-issue. We also need to remember that there are (or at least used to be) several "cleanup" tools that automatically turn <nowiki><br> into <br /></nowiki>. Also all browsers will understand both forms, so there is no technical reason for the choice, it is only a choice of esthetics. And I find the statement "we should not try to accommodate in our articles' wikitext for the latest doctype fad" an oversimplification of what xhtml was. It was a failure, not a stupid idea. Also, by striving towards html5, we are basically again following the same "fad". And as much as mobile.wikipedia.org might be HTML 4, our WAP2 portal is simple XHTML. We convert and translate all over the place, it does not matter, there is no hurry. I don't see the reason of changing this right now. —[[User:TheDJ|Th<span style="color: green">e</span>DJ]] ([[User talk:TheDJ|talk]] • [[Special:Contributions/TheDJ|contribs]]) 13:43, 10 November 2009 (UTC)
:::: We are here talking about the wikicode part (that resembles HTML), not about the HTML code that the parser or HTMLTidy generate from it. We should change the button text and add some recommendations to the [[Wikipedia:Manual of Style]]. [[User:Cacycle|Cacycle]] ([[User talk:Cacycle|talk]]) 14:20, 10 November 2009 (UTC)
Line 354 ⟶ 358:
:--[[User:Davidgothberg|David Göthberg]] ([[User talk:Davidgothberg|talk]]) 18:11, 10 November 2009 (UTC)
 
::The break tag is HTML; it is not wikimarkup. MediaWiki allows certain HTML markup to pass-through without change. As long as pages render as XHTML 1.0 Transitional, then &lt;br /> is the correct tag. If and when we switch to HTML 5, then we use &lt;br> and make other changes to conform. ---'''''—&nbsp;[[User:Gadget850|<span style="color:gray">Gadget850&nbsp;(Ed)</span>]]<span style="color:darkblue">&nbsp;</span>'''''</span><sup>[[User talk:Gadget850|''talk'']]</sup> 18:31, 10 November 2009 (UTC)
 
:::Regardless of how Mediawiki/Tidy handles the break; &lt;br> ''is'' considered valid wiki-markup for the purpose of editing. The documentation reflects this. So I do favor the use of &lt;br>. <span style="font-family: verdana;"> — [[User:Edokter|<span style="color: #008;"><b><i>E</i>dokter</b></span>]] • [[User_talk:Edokter|<span style="color: #080;">Talk</span>]] • </span> 02:17, 11 November 2009 (UTC)
 
My personal opinion is that <nowiki><br></nowiki> is the right tag to encourage users to use, as it is free of unnecessary frills. Right now the parser automagically converts <nowiki><br></nowiki> to <nowiki><br /></nowiki> to satisfy XHTML 1. In the near future we will be moving to HTML 5, and then I assume the parser will automagically convert <nowiki><br /></nowiki> to <nowiki><br></nowiki>, but the question of what code is output for the benefit of browsers and standards is largely irrelevant. The question is what code is easier for editors to understand and deal with. In my mind, <nowiki><br></nowiki> easily wins that contest, and even though people clicking on a button don't have to write it out, I still think the button should generate code in a form that is as easy as possible for editors to understand. [[User:Dragons flight|Dragons flight]] ([[User talk:Dragons flight|talk]]) 18:46, 10 November 2009 (UTC)
:Concur. All allowed markup is to make life easier for editors; the semantics of ''how'' it's passed through from wikitext to final output is not relevant. <ttsamp><nowiki><br></nowiki></ttsamp> is cleaner and easier to understand than <ttsamp><nowiki><br /></nowiki></ttsamp>, so we should use that; simple. What "a vertical separator" happens to look like in whatever output format MW happens to be using is not relevant to the question of "what should a vertical separator look like in wikimarkup?" [[User:Happy-melon|<span style="color:forestgreen">'''Happy'''</span>]]‑[[User talk:Happy-melon|<span style="color:darkorange">'''melon'''</span>]] 19:13, 10 November 2009 (UTC)
::I agree. When editing what we see is what is in the edit box, and the code whe use there is suposed to be easy to understand. Personally I think <nowiki><br></nowiki> is the easier. [[User:Heldergeovane|Helder]] ([[User talk:Heldergeovane|talk]]) 22:45, 10 November 2009 (UTC)
 
Line 365 ⟶ 369:
:::And I am aware that there are editing tools out there that tries to enforce <code>&lt;br /></code>. But that is not an argument against using better markup, instead it means those tools should be fixed.
:::--[[User:Davidgothberg|David Göthberg]] ([[User talk:Davidgothberg|talk]]) 23:49, 10 November 2009 (UTC)
::::So— we are getting HTML 5 and Liquid Threads next week? If we want to change the W3C specification, should we alert them? Encouraging incorrect use of a tag simply on the grounds of aesthetics is just... ---'''''—&nbsp;[[User:Gadget850|<span style="color:gray">Gadget850&nbsp;(Ed)</span>]]<span style="color:darkblue">&nbsp;</span>'''''</span><sup>[[User talk:Gadget850|''talk'']]</sup> 00:51, 11 November 2009 (UTC)
 
:::::Actually HTML 5 is probably going to be turned on in the next major Mediawiki release. Regardless though, it's not an "incorrect use" because <nowiki><br></nowiki> is never shown to browsers, it's just another bit of wiki markup from Mediawiki's point of view, and therefore we should choose whatever is convenient for editors to use and understand. W3C is irrelevant to this discussion. [[User:Dragons flight|Dragons flight]] ([[User talk:Dragons flight|talk]]) 02:33, 11 November 2009 (UTC)
Line 382 ⟶ 386:
== [[MediaWiki:Common.js]] - Redirects from /User:UserName/myskin.js or .css to the user's actual skin page ==
 
That breaks IE7 for anon because <ttsamp>wgUserName</ttsamp> is null. [[User:Umherirrender|Der Umherirrende]] 16:34, 11 November 2009 (UTC)
:Yikes, will fix immediately —[[User:TheDJ|Th<span style="color: green">e</span>DJ]] ([[User talk:TheDJ|talk]] • [[Special:Contributions/TheDJ|contribs]]) 16:36, 11 November 2009 (UTC)
::Error avoided, but a more elegant approach might be needed for anon users. —[[User:TheDJ|Th<span style="color: green">e</span>DJ]] ([[User talk:TheDJ|talk]] • [[Special:Contributions/TheDJ|contribs]]) 16:44, 11 November 2009 (UTC)
Line 389 ⟶ 393:
 
Many users are not familiar with using SVG images available on Wikipedia/Commons in office applications, etc. This is particularly true, if the base size is small ([[:File:1LT BNC.svg|example]]). Therefore, I suggest adding links to rendered PNG images in different sizes to the image page. This has already been implemented on de-WP and on Commons (see [[Commons:MediaWiki talk:Common.js#SVG files: links to rendered PNG images|talk page]]). --[[User:Leyo|Leyo]] 18:14, 12 November 2009 (UTC)
<sourcesyntaxhighlight lang="javascript">
// SVG images: adds links to rendered PNG images in different resolutions
addOnloadHook(function() {
Line 421 ⟶ 425:
}
});
</syntaxhighlight>
</source>
:This is the code in question. I think this would be a nice addition. I'm wondering if we should have a /file.js page for this however. What do you guys think ? Also, the usage of "nextSibling" should probably be avoided. —[[User:TheDJ|Th<span style="color: green">e</span>DJ]] ([[User talk:TheDJ|talk]] • [[Special:Contributions/TheDJ|contribs]]) 18:39, 24 November 2009 (UTC)
 
Line 434 ⟶ 438:
 
Code prepared in [[MediaWiki:Common.js/file.js]]. To be loaded from Common.js with:
<sourcesyntaxhighlight lang=javascript>
if( wgNamespaceNumber == 6 )
importScript('MediaWiki:Common.js/file.js');
</syntaxhighlight>
</source>
Most suggestions by David incorporated. I was wondering. Isn't "resolutions" a misnomer ? Perhaps we should just say "in different sizes" —[[User:TheDJ|Th<span style="color: green">e</span>DJ]] ([[User talk:TheDJ|talk]] • [[Special:Contributions/TheDJ|contribs]]) 14:07, 25 November 2009 (UTC)
 
Line 447 ⟶ 451:
Hmm, JavaScript can do ''loops'', if you get what I mean... — [[user:Alex Smotrov|AlexSm]] 20:43, 25 November 2009 (UTC)
 
<sourcesyntaxhighlight lang=javascript>
// SVG images: adds links to rendered PNG images in different resolutions
function SVGThumbs() {
Line 477 ⟶ 481:
};
addOnloadHook( SVGThumbs );
</syntaxhighlight>
</source>
Code untested. I think you use wgIsArticle instead of wgAction == "view" since things like purge renders a fully viewed page. You should be using wgServer + wgScriptPath, not all SVGs are at commons. We probably should be picking common screen resolutions like 1024x768, 1280x960, 1920x1080, 2048x1536. — [[User:Dispenser|Dispenser]] 21:06, 25 November 2009 (UTC)
:I fixed the paths immediately, I think that was kinda important. —[[User:TheDJ|Th<span style="color: green">e</span>DJ]] ([[User talk:TheDJ|talk]] • [[Special:Contributions/TheDJ|contribs]]) 21:14, 25 November 2009 (UTC)
::The list of appends is messy. Put them in an array and iterate? [[User:Ale_jrb|<fontspan colorstyle="color: green">A</fontspan><small><fontspan colorstyle="color: green">le_Jrb</fontspan>]]</small>]]<sup>[[User_talk:Ale_jrb|<fontspan colorstyle="color: blue">talk</fontspan>]]</sup> 21:17, 25 November 2009 (UTC)
::By that I mean the size, in case it isn't obvious. :) [[User:Ale_jrb|<fontspan colorstyle="color: green">A</fontspan><small><fontspan colorstyle="color: green">le_Jrb</fontspan>]]</small>]]<sup>[[User_talk:Ale_jrb|<fontspan colorstyle="color: blue">talk</fontspan>]]</sup> 21:21, 25 November 2009 (UTC)
:::I doubt it will matter much in terms of efficiency, readability or speed. Now using a svgAltSize() function to at least keep the link generation a bit cleaner. —[[User:TheDJ|Th<span style="color: green">e</span>DJ]] ([[User talk:TheDJ|talk]] • [[Special:Contributions/TheDJ|contribs]]) 21:40, 25 November 2009 (UTC)
::::No, it doesn't matter much. Significantly better practise though. Meh. :) [[User:Ale_jrb|<fontspan colorstyle="color: green">A</fontspan><small><fontspan colorstyle="color: green">le_Jrb</fontspan>]]</small>]]<sup>[[User_talk:Ale_jrb|<fontspan colorstyle="color: blue">talk</fontspan>]]</sup> 21:43, 25 November 2009 (UTC)
 
:@Dispenser, the problem with "screen sizes" is of course that the width x height defined here, are the limits, not the dimensions of the ouput. Although I agree that other sizes might be more useful than the current ones. I tried to fix the path issue, just not really sure about a good identification method for commons atm (wgServer doesn't work, is always en.wp) —[[User:TheDJ|Th<span style="color: green">e</span>DJ]] ([[User talk:TheDJ|talk]] • [[Special:Contributions/TheDJ|contribs]]) 21:52, 25 November 2009 (UTC)
Line 502 ⟶ 506:
=== 3rd version ===
OK, my 3rd version of the code. Now just patches the URL of the original thumb (since for SVG we always have png thumbs). Also, per popular request, a loop. This code is not yet live. —[[User:TheDJ|Th<span style="color: green">e</span>DJ]] ([[User talk:TheDJ|talk]] • [[Special:Contributions/TheDJ|contribs]]) 00:29, 27 November 2009 (UTC)
<sourcesyntaxhighlight lang="javascript">
// SVG images: adds links to rendered PNG images in different resolutions
function SVGThumbs() {
Line 533 ⟶ 537:
};
addOnloadHook( SVGThumbs )
</syntaxhighlight>
</source>
 
 
Line 541 ⟶ 545:
 
:That code works, but might I suggest this alteration:
<sourcesyntaxhighlight lang="javascript">
var thumbu = file.getElementsByTagName('img')[0].src;
if (!thumbu) return;
Line 547 ⟶ 551:
function svgAltSize(w, title) {
var path = thumbu.replace(/\/\d+(px-[^\/]+$)/, "/" + w + "$1");
</syntaxhighlight>
</source>
:Otherwise it relies on the img's specified width on the page matching the width in the URL. It probably will, but there might be other strange influences at work that browsers get wrong: zooming, not having fully loaded the image yet (race condition?), etc. The other part of that regexp is to prevent matching on the wrong part of the URL if the file name includes something that looks like the size. E.g., <nowiki>http://upload.wikimedia.org/wikipedia/en/thumb/3/35/200px-stupid-file-name.svg/200px-200px-stupid-file-name.svg.png</nowiki>. Also the wgTitle logic could be shortened to the more elegant <ttsamp>wgTitle.match(/\.svg$/i)</ttsamp> if you wish. • [[User talk:Anakin101|Anakin]] 03:13, 27 November 2009 (UTC)
::Deployed with suggestions. —[[User:TheDJ|Th<span style="color: green">e</span>DJ]] ([[User talk:TheDJ|talk]] • [[Special:Contributions/TheDJ|contribs]]) 23:13, 27 November 2009 (UTC)
 
Line 581 ⟶ 585:
Per [[Wikipedia:Village pump (technical)#Turn on spellcheck in summary field|a discussion]] at the Village pump, we (I and Dispenser) would like to turn on spellchecking in the edit summary field. At the moment this works for Firefox 2 and 3. At least for me it doesn't work in Opera, but it is likely more browsers will sooner or later support this. I would like to add the code below to [[MediaWiki:Common.js/edit.js]]:
 
<sourcesyntaxhighlight lang="javascript">
// Turn on spellchecking in the edit summary field, for Firefox.
// Temporary until [[bugzilla:21604]] is deployed
Line 589 ⟶ 593:
wpSummary.spellcheck = true;
} );
</syntaxhighlight>
</source>
 
The code has been checked (and fixed) by TheDJ.
Line 628 ⟶ 632:
:But as I thought, we can't check variables set by users, unless inside addOnloadHook(). We need to load [[MediaWiki:Sysop.css]] before page rendering, so that means we can't check <code>!window.disableSysopJS</code> for it. But as far as I know the reason for that variable is that Sysop.js interferes with some user scripts, but the Sysop.css should not be a problem for those users. And as far as I can see from searching for "disableSysopJS" only three admins use that setting. The most noticeable difference for those three admins will be that from now on they will see pink background in the edit window when editing protected pages, just like all other admins see. If they don't like that, then they can instead do like some of us and add one line of CSS to their /monobook.css to change that pink background to something else.
:Since the code for loading the sysop and accountcreator files is so similar, I want to merge it, like this:
<sourcesyntaxhighlight lang="javascript">
/** For sysops and accountcreators *****************************************
*
Line 649 ⟶ 653:
}
}
</syntaxhighlight>
</source>
:This also makes it easy and efficient if we want to add loading of special CSS or javascript for other user groups.
:--[[User:Davidgothberg|David Göthberg]] ([[User talk:Davidgothberg|talk]]) 12:03, 6 January 2010 (UTC)
Line 657 ⟶ 661:
 
:The editnotice system now also needs to unhide a link when a user edits his own user or user talk page. That is, no one else than the user himself (and admins) should see it. See discussion at [[Wikipedia talk:Editnotice#User page links]]. To do that I intend to add this code to [[MediaWiki:Common.js/edit.js]]:
<sourcesyntaxhighlight lang="javascript">
// Loads [[MediaWiki:Ownuserspace.css]] when the
// user is on his own user or user talk basepage.
Line 663 ⟶ 667:
importStylesheet("MediaWiki:Ownuserspace.css");
}
</syntaxhighlight>
</source>
:The above code only loads [[MediaWiki:Ownuserspace.css]] when on the user's rootpage or root talk page, not on the user's subpages. Currently we don't need it to load on the subpages, so no reason to make the code more complicated. Later we might load it for the entire userspace, so I named the CSS file "userspace" instead of "userpage". And currently we only need it when editing the page, so loading it from /edit.js is more efficient than loading it from Common.js.
:--[[User:Davidgothberg|David Göthberg]] ([[User talk:Davidgothberg|talk]]) 22:41, 12 January 2010 (UTC)
Line 669 ⟶ 673:
::{{tick|18}} '''{{ucfirst:Done}}''' – --[[User:Davidgothberg|David Göthberg]] ([[User talk:Davidgothberg|talk]]) 01:33, 13 January 2010 (UTC)
 
::[[Image:Kde crystalsvg eraser.png|18px]] '''{{Undone'''}} - I have removed the loading of "MediaWiki:Ownuserspace.css" since not needed anymore. Amalthea pointed out that {{tlc|REVISIONUSER}} returns the name of the current user when it is used in system messages, which is a better solution for the editnotice system. See [[Wikipedia talk:Editnotice#User page links]].
::But we still use the javascript for sysops and accountcreators shown in the first code box above.
::--[[User:Davidgothberg|David Göthberg]] ([[User talk:Davidgothberg|talk]]) 12:11, 14 January 2010 (UTC)
Line 684 ⟶ 688:
And I will change the code in [[MediaWiki:Common.js]] that loads [[meta:MediaWiki:Wikiminiatlas.js]] to this:
 
<sourcesyntaxhighlight lang="javascript">
addOnloadHook( function() {
var wmaload = document.getElementById("wikiminiatlas-load");
Line 696 ⟶ 700:
importScriptURI(metaBase+"/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400")
} );
</syntaxhighlight>
</source>
 
I will notify the people who work with coordinates and Dschwen who seems to be the main coder of the WikiMiniAtlas system.
Line 709 ⟶ 713:
::TheDJ: Thanks for pointing out {{tl|coor URL}}. It seems the trigger id should be added to that template instead.
::--[[User:Davidgothberg|David Göthberg]] ([[User talk:Davidgothberg|talk]]) 18:30, 15 January 2010 (UTC)
:::It's not "no problem", it's ''invalid HTML''. Both [http://www.w3.org/TR/html401/struct/global.html#adef-id HTML4] and [http://dev.w3.org/html5/spec/Overview.html#the-id-attribute HTML5] require absolutely explicitly that the id value must be unique within the document. I assume you want to use an id instead of a class so you can use <ttsamp>getElementById()</ttsamp> rather than the more expensive <ttsamp>getElementsByClassName()</ttsamp>; tough. You can't break HTML validity just for the sake of a few miliseconds of JS execution time. I wouldn't be surprised if a lot of JS, Twinkle especially, broke entirely. [[User:Happy-melon|<span style="color:forestgreen">'''Happy'''</span>]]‑[[User talk:Happy-melon|<span style="color:darkorange">'''melon'''</span>]] 18:51, 15 January 2010 (UTC)
::::My concern was also particularly for Twinkle. We've seen it stumble over broken HTML quite a few times already. —[[User:TheDJ|Th<span style="color: green">e</span>DJ]] ([[User talk:TheDJ|talk]] • [[Special:Contributions/TheDJ|contribs]]) 19:45, 15 January 2010 (UTC)
 
Line 735 ⟶ 739:
 
{{hidden begin|title=WMA loader lite}}
<sourcesyntaxhighlight lang="javascript">
// WikiMiniAtlas loader lite
var wikiminiatlas = {
Line 879 ⟶ 883:
}
addOnloadHook(wikiminiatlas.loader);
//</sourcesyntaxhighlight>
{{hidden end}}
I was hoping to get the size a lot smaller, but I guess this will have to do. It is currently at approx. 150 lines/6 KB compared to the original 503 lines/16 KB.