Template talk:Intricate template

From Wikipedia, the free encyclopedia
Jump to: navigation, search


This tag's purpose is to warn users intending to edit a template containing a syntax that is understandable only by Wikipedians possessing advanced template knowledge.

Examples of esoteric constructs are if-statements, list/loop-construct, et cetera . . .

To use this tag, type {{intricate}} in the <noinclude> portion of the target template.


Optional parameters[edit]

This tag specifies that the associated template contains one or more optional parameters, but it seems as though this is true of only some of the templates to which this tag is intended to apply. Is this correct? Of so, that sentence should be removed. —Lifeisunfair 18:45, 21 November 2005 (UTC)

Yes, you might have right, there could be templates using the list/loop syntax, without refering to optional parameters, but the mass templates using esoteric syntax are using them for enable optional paramters. --AzaToth talk 19:44, 21 November 2005 (UTC)


Aren't templates using this template likely to violate WP:AUM...? -- SCZenz 10:13, 9 January 2006 (UTC)

Yes, but WP:AUM was rejected, there can be legit reasons to use esoteric templates, especially if they are subst ituted. Omniplex 14:07, 28 February 2006 (UTC)


That's funny how they use a second box.

FLaRN2005 (talk) 20:52, 20 August 2006 (UTC)


Why do all of these message boxes use tables for the box instead of a div? — Omegatron 14:53, 11 January 2007 (UTC)

Since tables make it much easier to handle the left side image. --David Göthberg 08:02, 11 September 2007 (UTC)

Swedish interwiki[edit]

Please add [[sv:Mall:Komplicerad kod]]. /skagedal... 17:09, 11 February 2007 (UTC)

Done --Ligulem 21:39, 11 February 2007 (UTC)

Esoteric programming language[edit]

{{editprotected}} Please remove link to Esoteric programming language as it is nonsensical in context of this template. The Esoteric programming language article states, "An esoteric programming language is a programming language designed as a test of the boundaries of computer programming language design, as a proof of concept, or as a joke. There is usually no intention of the language being adopted for real-world programming." Such is not the case in the instances when this template is employed. Rather, the template syntax is merely complex, not "esoteric." TS3 23:22, 13 February 2007 (UTC)

Link removed. 'wikt:Esoteric' can also mean "understood only by a few", but personally, I think the template would be better renamed to "Complex" or something similar Proto:: 10:37, 14 February 2007 (UTC)


The primary meaning of "esoteric" is 'something that is highly theoretical and without practical application' - could this template be renamed Template:Complex? Esoteric could remain as a redirect. Proto:: 10:37, 14 February 2007 (UTC)

Much more appropriate, I highly recommend "complex" the most appropriate "intricate" (see below, follow the link). — SomeHuman 9 Mar2007 05:15-05:32 (UTC)
After seeing for Template:Infobox Country how many changes in numerous consecutive edits occur, while its sandbox has not even been used in many months, I also suggest to change the "Complex" template's last sentence and put it in bold, hence:
Information icon.svg This template employs intricate features of template syntax.
Please do not alter it unless you are certain to understand its setup and parser functions and are ready to repair/revert all collateral damage if results are unexpected.
Any experiments should be conducted and all improvements tested in the template sandbox, or in your user space, before applying anything here.
SomeHuman 9 Mar2007 05:33 (UTC)
  • Support. I guess "esoteric" is an... esoteric word to use in this template. Regards, David Kernow (talk) 05:48, 9 March 2007 (UTC)
Note: I also modified the link 'Template:Template sandbox' to code that checks whether such sandbox (as subpage "/Test sandbox") is already created for the template in which the Template:Intricate gets shown. In that case the link shows that specific sandbox, else the general 'Template:Template sandbox'. E.g. in Template:Infobox Country, {{Intricate}} would show the above text with a link to Template:Infobox Country/Test sandbox. — SomeHuman 9 Mar2007 19:27 (UTC)


Please unprotect', paste talk source of the above (in talk source in capitals indicated) to replace the relevant part of the template source, move the Template:Esoteric to Template:Intricate. Kind regards. — SomeHuman 9 Mar2007 19:42 (UTC)

Comment I can give a reason, why this template is named "esoteric", it's because, when it was created, the templates it was used on, was in fact almost 100% esoteric. Not in the way to abscure the code, but as the tricks for using some constructs, was based in using lupeholes in the wiki-syntax. Mosly it was in relation of using the templates {{qif}}, {{booleq}}, {{switch}}, and the boolean templates. Because how they where built, there was a requirement, that whitespaces was not applied in certain places, and thus adding to the unreadable result. AzaToth 19:49, 9 March 2007 (UTC)
Historical name, thus better now move to its practical usage — unless one would create 'Intricate' as a separate template though that would require both templates to reference eachother and clearly differenciating between complex and fine 'Intricate' syntax and loophole 'Esoteric' syntax. Templates would often carry the 'wrong' box and cause discussions on which to use, ending up in most of the 'difficult' templates carrying both boxes - not so good. Best rename to best fit name for its practical usage, as also loophole syntax should be expected with 'intricate'. The way of handling (in sandbox) is identical anyway. — SomeHuman 9 Mar2007 20:15-20:20 (UTC)

Renaming is fine, but "intricate" is not the right name. I would suggest something like Template:conditional or Template:conditional logic. —Doug Bell talk 20:19, 9 March 200 7 (UTC)

That is far too common and would cause this template at (nearly) every Template, which is not its purpose. — SomeHuman 9 Mar2007 20:23 (UTC)

Removed {{editprotected}} (as a non-admin); the discussion didn't seem to come to a consensus, and this had been in CAT:PER with no action for ages. --ais523 09:54, 16 March 2007 (UTC)

I do not see opposition to the changes —in particular the sandbox which in case a standard one already exists, automatically shows & links to that one— in the template, to which I just incorporated the meanwhile added 'parser functions', though only understanding parser functions will not always be sufficient. Hence I kept the requirement to understand the setup in as well, to accomodate for other intricacies, and made the text a bit more straightforward. The perpetuous usage of the past time by AzaToth indicates that the original intention is no longer our main or only concern; Dough Bell isn't happy about the current name any more than about the one I suggest; his suggestion however, is far too general: this template is still intended to be used on only the more intricate templates, and the recent inclusion of required knowledge about 'parser functions' rather ensures understanding of the conditional logic that Doug was worried about. Proto, myself, and David Kernow clearly wish the move. — SomeHuman 17 Mar2007 04:09 (UTC)
I wouldn't oppose a move to {{Intricate}}, but don't care too much. Esoteric has more than one defintion, not all of them resolve to "useless". — SMcCandlish [talk] [contrib] 15:23, 17 March 2007 (UTC)
Also, I just can't get behind this "setup" wording. The word really doesn't make any sense in the context. When I rack fifteen object balls and put the cue ball at the proper end of the table, that is a setup. If this template is meant to include templates that are esoteric for other reasons than parser functions, the language should be specific and link to the right pages: "...Please do not attempt to alter it unless you are certain that you understand parser functions and CSS, and are prepared..." (yes, that's a redlink in the example; I don't remember the location of the CSS page). I.e., the template will basically be saying "if you aren't an expert, just go @#$% yourself" without these links, which instead make the template say "don't edit here until you are an expert, and by the way, here's how to become an expert." Also, the sample language just provided preserves more of the original wording; the replacement code much higher up on this thread changed some of it without explanation. A further rewording might be in order but should be discussed. My take would be something like:
  • This template employs intricate template features, which may include parser functions, CSS, and/or something else here. Please do not attempt to alter it unless you are certain that you understand these functions and are prepared to repair/revert any consequent collateral damage if the results are unexpected. Any experiments should be conducted in the template sandbox or your user space.
with line breaking as appropriate. I don't know what besides parser functions and CSS should be covered; just provide somewhere to insert something if necessary. Also removed "complicated or estoeric" (which was kind of redundant anyway) and used "intricate" which seems to be the preferred word so far. If this version is liked, maybe (after redlink(s) fixed) just refactor the desired replacement template above? This thread is already getting rather long and confusing. Oh, and "CSS" might be to generic; maybe it would instead need to read something like Wikipedia CSS classes and IDs or whatever. I don't really have an opinion on that; just responding to concerns raised on my talk page that only mentioning parser functions isn't enough (though I agree that simple conditionals aren't esoteric/intrictate). — SMcCandlish [talk] [contrib] 15:47, 17 March 2007 (UTC)
SMcCandlish incorrectly suggests my changing of the text not to have been applied properly. Quote from my last comment: "and made the text a bit more straightforward", after which I (as SMCandlish says about his invitation) dropped a note on the recent participants' talk pages: thus it is openly ready to be discussed. SMcCandlish words it once more as "consequent collateral" damage, which in this context is largely redundant and as it is most obvious that the "collateral damage" would be the consequence of the altering, I dropped "consequent". And SMcCandlish also suggests to maintain the truly ridiculous "attempt to": I don't care about any 'attempt', I only care about effectively altering, thus straightforwardly "Please do not alter it unless...". Also I replaced "be prepared" with "are ready": one may be prepared to do something once one finds the time, but one is ready only if one is prepared to do it immediately. That's what we need.
His idea of sending people to hell is better than suggesting them that reading some page could entitle one to fix a template: If one does not even know what css is, some linked WP page or W3C's site is not going to quickly teach one how to apply it in a template, its hard enough to use in normal text. As if after going to learn the meaning of 'wheel', one should be allowed to tamper with an F1. 'Our' template is there precisely to send the utterly inexperienced anywhere, as long a it is not here.
For less intricate templates, one might create another 'Template:Technical' or so, that allows a parameter for some term(s) and some linked page(s), thus enabling a generally capable contributor to obtain information on a less familiar topic that would be in the template-to-be-edited. I'm not very fond of the —apparently entirely undiscussed— inclusion of 'parser functions', but at least one may assume those to occur in every 'intricate' template. It was however highly incorrect, to drop "setup" from the text: SMcCandlish properly asked, Zsinj executed within 12 hours. The term "setup", or any other term that can mean as well a "purpose-oriented construction" of the template as a whole, as of a part of it (e.g. in one or more of the parser-functions). Intricate templates may have several intricacies and may use several techniques, one cannot list all of those: they will not always be present (e.g. css) and even if passing a list as a parameter, it could very easily forget to mention some techniques or concerns. Therefore the Template:Intricate must maintain a short all-encompassing general term, and thus allow the contributor to have a look and decide whether one does or does not understand "the setup". Thus SMcCanlish's above suggestion to make a list and than adding insult on injury by referring to "these functions", would set the gate wide open to making modifications as long as one understands the necessarily too limited list. SMcCandlish does not immediately see anything besides parser functions and css, what about creating complex tables by parser functions (the link to parser functions will not help here), templates that cooperate with other templates, advanced templates, etc... I don't know everything either and I can't hang around all the time to check where one is using the template, that's why we need a short but sufficient term, "setup" used to be that term and I don't immediately see a shorter one or one that fits better.
Anyway, the continued full protection of this template is unacceptable if some contributors evidently can get their ideas-of-the-moment in as they please while just as serious others have to keep on pleading and explaining for ages. Who WP:OWNs this template and for what reason?
SomeHuman 18 Mar2007 07:55-08:45 (UTC)
Sounds like I inadvertently ticked you off. Sorry! "SMcCandlish incorrectly suggests my changing of the text not to have been applied properly." I don't know what that refers to. I think I did say that major changes were made without discussion, but... Eh. That's just sort of a usual, general point. Saying it in talk is an alternative to reverts; seemed preferable. FYI, I think the current version is an improvement before this "debate" began (I don't want to label it a debate, because I think the points of dispute are actually both few and minor.) Regarding "consequent" and "attempt to": I concur (I think with "attempt to" I was being a bit too arch). Prepared vs. ready: good point. Hell: I laughed a lot on that one. :-) Regarding "entitle": I wasn't suggesting any super-bold entitlement, just saying, basically, this is an open Wiki and we should be helpful/educational as possible; I don't think the wikiliks I proposed "suggest" any such entitlement.
CSS: I did not mean "link to Cascading style sheets" (or to W3C), I meant to the page about how CSS is used in the Wiki, and I still can't remember where that page is. "Send the utterly inexperienced anywhere": Not just anywhere, but somewhere educational about templates and their aspects, so that users obviously interested in this stuff (why else would they be good-faithedly tinkering with templates?) get up to speed faster, and we get fewer templates mangled by people who don't know what they are doing but fervently want to "do". "One may assume [parser functions] to occur in every 'intricate' template": I see this tag used fairly often on templates that don't. Maybe that is simply misuse of the template (I have argued that it is, and have removed it from templates that clearly don't warrant it before). "Setup": I think the word is too vague to have any useful meaning here (perhaps like my "these functions"?) Parameters/all-ecompassing: Agreed, I just don't like "setup" as the catch-all term. Not sure I have a replacement for it though. One shouldn't be too hard to come up with, but I'm dead tired and the brain is slowing down. Adding insult on injury/examples of other esoterica/intricacies not a viable option: Acknowleged.
"A shorter [term] or one that fits better": Longer (within reason) should not be a concern at all, over clarity. Fitting better is precisely the concern I have. But of all the things to argue about on WP, not a high priority, I assure you. Full protection: I have a issues with that too; I don't think admins should be making edits to this page based on their own ideas; file an editprotected like everyone else, to avoid conflicts of interest. Janitor's don't have keys to broom closets so they can set up bachelor pads in them. :-) That was more a comment on the stuff going on at WP:ATT than here, but I think as a general point it is important. Full-protection shouldn't be used as a private admins-only editing club. However if my memory serves, someone simply responded to my editprotected request; you can make those too. I can't remember any admins making personally-preferred edits for their own devices, but I could have missed something. Again, just a general WP-wide point. I haven't followed edits here enough to know whether what I'm saying about that issue applies in situ. Anyway, sorry for the delay in reply; I forgot to watchlist this one. PS: re: WP:OWN — No OWNership here (trust me, I can show you some OWN...). Editprotected requests just get handled kind of at random. I've had one fulfilled in less than 5 minutes (report of it being fulfilled actually editconflicted me!), and another took seventeen days. I'm not kidding. They're fulfilled by admins thinking, "Hmm, I'm bored, I guess I'll go see if there's any Editprotects waiting." — SMcCandlish [talk] [contrib] 10:45, 27 March 2007 (UTC)
  • Inside my suggested Template:Intricate, I just made one more change: " {{nowrap|{{{1|}}}}}" was inserted at the end of the first text line, just before the break. Hence one might use it as e.g. {{Intricate|It is highly recommended to read its [[Template:{{PAGENAME}}/techdoc|technical documentation]] carefully.}} — I assume that people editing an Intricate template will not pass an overly long textline without <br/>. — SomeHuman 18 Mar2007 10:29 (UTC)
  • In the Template:Intricate, the noinclude box should better become (now also with a link to esoteric):
Information icon.svg Actually, this template's syntax is relatively simple, but templates that link to the above message should be intricate, e.g. complex, using less obvious techniques, esoteric syntax, combining different techniques, used as parameter for other templates, build to function for a variety of calling instances, etc. The above template adds templates to Category:Esoteric templates.
SomeHuman 18 Mar2007 10:45 (UTC)

Interwiki link for Interlingua[edit]

Resolved: Done

Dear administrator, please add the following interwiki link:


Thank you in advance, Julian 21:29, 5 March 2007 (UTC)

(Already done as of 05:50, 9 March 2007 (UTC). David Kernow (talk))

Let's make it make sense and link to useful things[edit]

Resolved: To the extent it applies any longer at all it was encompassed by later edits.

Let's replace "the setup", which really doesn't make any parseable sense in the context at all, with "[[M:Parser functions|parser functions]]" — SMcCandlish [talk] [contrib] 11:47, 12 March 2007 (UTC)

Done! ZsinjTalk 23:42, 12 March 2007 (UTC)

Replace and move[edit]


Replace old:

<noinclude>{{Protected template}}<br/><hr/><center><small>''template begins''</small></center></noinclude><!--

--><div class="messagebox" style="border:1px solid #A00; clear: both">
|width="60px" align="center"| [[Image:Information_icon.svg|40px]]
| '''This template employs complicated or [[wikt:Esoteric|esoteric]] features of template syntax.'''<br/><span style="font-size:90%;">Please do not attempt to alter it unless you are certain that you understand [[M:Parser functions|parser functions]] '''and''' are prepared to repair/revert any consequent collateral damage if the results are unexpected.  Any experiments should be conducted in the [[Template:Template sandbox|template sandbox]] or your user space.</span>
|}</div><includeonly>[[Category:Esoteric templates|{{PAGENAME}}]]</includeonly><!--

--><noinclude><center><small>''template ends''</small></center>
<div class="messagebox">
{| style="width:100%; background:none;"
|width="60px" align="center"| [[Image:Information_icon.svg|40px]]
|Actually, ''this'' template's syntax is relatively simple, but templates that link to the above message should use esoteric syntax.  This template adds templates to [[:Category:Esoteric templates]].

This template is for templates with esoteric syntax.

with new:

<noinclude>{{Protected template}}<br/><hr/><center><small>''template begins''</small></center></noinclude><!--
--><div class="messagebox" style="border:1px solid #A00;clear:both;"> {|style="width:100%;background:none;" |width="60px" align="center"| [[Image:Information_icon.svg|40px]] | '''This template employs [[wikt:Intricate|intricate]] features of template syntax.''' {{nowrap|{{{1|}}}}}<br/><span style="font-size:94%;">Please do not alter it unless you are certain to understand its setup and [[M:Parser functions|parser functions]] '''and''' {{nowrap|are ready to repair/revert all collateral damage if results are unexpected.}}<br/>'''Any experiments should be conducted and all improvements tested in the {{nowrap|[[Template:{{#ifexist:{{FULLPAGENAME}}/Test sandbox|{{PAGENAME}}/Test|Template}} sandbox|{{#ifexist:{{FULLPAGENAME}}/Test sandbox|Template:{{PAGENAME}}/Test|template}} sandbox]]}}, {{nowrap|or in your user space, before applying anything here.}} |}</div><includeonly>[[Category:Esoteric templates|{{PAGENAME}}]]</includeonly><!--
--><noinclude><center><small>''template ends''</small></center> <hr/><br/> <div class="messagebox"> {| style="width:100%; background:none;" |width="60px" align="center"| [[Image:Information_icon.svg|40px]] |Actually, ''this'' template's syntax is relatively simple, but templates that link to the above message should be intricate, e.g. complex, using less obvious techniques, [[wikt:Esoteric|esoteric]] syntax, combining different techniques, used as parameter for other templates, build to function for a variety of calling instances, etc. {{nowrap|The above template adds templates to [[:Category:Esoteric templates]]}}. |}</div>

and move this Template:Esoteric → Template:Intricate
What has changed?

  • The name of the template (to which several contributor's had formulated objections), the new name is quite appropriate (follow hereunder the old and new link in the first sentence of the template)
  • "complicated or esoteric" → "intricate"
  • accepts single argument (newly inserted: a blank followed with {{nowrap|{{{1|}}}}}) for optional text line e.g. to warn about specific techniques and pitt-falls [the nowrap immediately followed by pre-existing <br/> puts a short note on wider screen behind the opening sentence, else puts it on a separate new line]
  • The text of the actual template became more straightforward and clear, the text of the accompaning messagebox now gives useful indications for when to use the template; compare both shown in section #Move with current template and its messagebox.
  • For some really intricate templates or some large ones that require modifications often, a permanent dedicated sandbox is available as subpage "/Test sandbox" of such templates (e.g. Template:Infobox Country/Test sandbox. Now, the Template:Intricate checks for its existence and if so mentions and links to it, else (as before) it shows and links to the general template sandbox.
  • The redundant final sentence "This template is for templates with esoteric syntax." [or now "intricate syntax."] is dropped, because the accompaning messagebox states this, now more than ever, much clearer.

You can copy the new template code straight from the readable talk page here (there are no &nbsp; or {{spaces|n}} in the code).
Kind regards. — SomeHuman 21 Mar2007 00:21 (UTC)

Yes check.svg Done Cbrown1023 talk 20:27, 21 March 2007 (UTC)

Minor edit?[edit]

Shouldn't the link be to ParserFunctions, not Parser functions, since most pages are actually using that extension, and not just generic parser code? Any thoughts? --MZMcBride 04:14, 25 March 2007 (UTC)

{{editprotected}} I think the generic help page is right; the only people likely to click the link are people who don't know what any sort of parser function is. CMummert · talk 23:20, 27 March 2007 (UTC)
Agreed. It's for "ooh, this is cool stuff, where do I learn more?" people. Who should be encouraged. — SMcCandlish [talk] [contrib] 00:26, 28 March 2007 (UTC)

Please remove commas[edit]

Please remove both commas in the last sentence of the template. They are incorrectly used. Reywas92Talk 02:44, 6 April 2007 (UTC)

Green tick.svg Reworded. Harryboyles 05:45, 6 April 2007 (UTC)

layout problems[edit]

Why is this template designed the way it is, with a div containing a table? On my browser, the table extends to the right of the div (that is, the div doesn't contain it) and the text juts across the border. Can't we use just a table like a normal template? CMummert · talk 04:31, 6 April 2007 (UTC)

Unless someone complains, I think this is better. It gets rid of the problem of text overflowing the containing div. I also got rid of some of the nowraps; these should be used sparingly, since they break styling on narrow screens. And I copyedited the prose some. Unless there are complaints, I'll make this live soon. CMummert · talk 11:58, 6 April 2007 (UTC)

Information icon.svg This template employs intricate features of template syntax.

Please do not alter it unless you understand its setup and parser functions and are ready to repair or revert all collateral damage if results are unexpected.
Any experiments should be conducted and all improvements tested in either the template sandbox or your user space before changing anything here.

Change made. CMummert · talk 12:17, 9 April 2007 (UTC)
There's no reason to make the second and third lines <small>, these are the most important lines for which the first line is merely an introduction. Note that the original "font-size:94%;" had the advantage, on a common configuration as XP with IE6 (and now IE7) without modifying relevant user preferences, of having a slightly narrower font without appearing to lessen the font height. The current small font says "this text is unimportant" and makes the entire template useless. — SomeHuman 9 Apr2007 18:16 (UTC)
I think "useless" may be a bit of a stretch, since the text is still there. I am not fond of hacks like font-size=94% that can't be expected to work with different fonts or on different platforms. I removed the small tags altogether, which I hope is reasonable. CMummert · talk 18:44, 9 April 2007 (UTC)
I can live with it, but style="font-size:94%" is not a hack, but straightforward documented and well supported css. The precise rendering of it depends on the typeface of course, but so does any big, small, etc, and even plain normal rendering. The very small difference with normal text (being 100%) warranties a rendering in either 100% (like you made it now) or in a near-100% well readable size. And it has the extra advantage that for a widely used configuration it allows slightly more text on a same line almost without the font change being noticable, but it's no hack because its behaviour on any configuration must show a font of more than '<small>' and not more than normal size. — SomeHuman 12 Apr2007 01:07 (UTC)
The css is correct. The choice of 94% rather than 93% or 95% is what I meant when I said it was a hack. CMummert · talk

Please add interwiki[edit]

[[zh-yue:Template:祕技]] -Hello World! 16:51, 11 April 2007 (UTC)

Green tick.svg Done. ^demon[omg plz] 22:30, 11 April 2007 (UTC)

Layout problem 2[edit]


With my browser and settings, the text is squashed vertically, and the last line gets its feet cut off. This seems to be due to the line-height:11pt; and 12pt clauses in the DIV tags. I'm not sure what their purpose is; are they necessary? Thanks, Tualha (Talk) 13:09, 5 July 2007 (UTC)

Personally, I would be glad to remove all the special CSS font and line formatting, and let the user's defaults come through. — Carl (CBM · talk) 22:29, 10 July 2007 (UTC)
From a quick preview the line-height parameters seem to make no difference. If people are happy for me to change, I'll take them out now. I agree with Carl - if you're going to set the font to 95%, there may be no point in changing it at all, but it looks OK slightly smaller IMO. ck lostswordTC 22:54, 10 July 2007 (UTC)
0.9/0.95em instead of percent? ck lostswordTC 22:57, 10 July 2007 (UTC)
The argument for 95% is that it makes the font visibly smaller in IE, apparently. I have always thought it is a hack. — Carl (CBM · talk) 00:32, 11 July 2007 (UTC)
True, good point. Ah well, I'll just remove the lineheights for now. ck lostswordTC 07:19, 11 July 2007 (UTC)
Looks good now. Thank you. Tualha (Talk) 15:46, 11 July 2007 (UTC)
YesY Done - glad it worked :) ck lostswordTC 15:56, 11 July 2007 (UTC)

Is this template helpful?[edit]

I feel that this template needlessly discourages would-be editors from getting stuck in.

Surely the degree of complexity should be reasonably obvious by looking at the source code?

Anyone that meddles and breaks things can easily undo their edits using the history function.

It'd be a shame if someone with the potential to be a great contributor to the template namespace was scared off from making edits by this tag.

There must be a good reason for this template's existence - could someone elucidate me?

Thanks!! Verisimilus T 16:19, 12 August 2007 (UTC)

Proposed rewording[edit]

To encourage editors to get stuck in, I feel we ought to change the template something along the lines of the following:

Information icon.svg This template employs intricate features of template syntax.
You are encouraged to familiarise yourself with its setup and parser functions before editing the template. If your edit causes unexpected problems, please undo it quickly, as this template may appear on a large number of pages.
Remember that you can conduct experiments, and should test all improvements, in either the local /sandbox or your user space before changing anything here.

Verisimilus T 15:46, 19 August 2007 (UTC)

{{editprotected}} With a lack of opposition after a reasonable wait, please update the template to that displayed here (which has been modified to take the edit listed below into account). Verisimilus T 09:43, 7 September 2007 (UTC)

Yes check.svg Done. Cheers. --MZMcBride 20:41, 7 September 2007 (UTC)

Code for detecting standard /sandbox and variants[edit]


Perceived problem

The current code only detects the possible existence of a subpage named /Test sandbox (something of a pleonasm, BTW). But many templates use a different name, especially the semi-official /sandbox (lowercase) as per Wikipedia:Template test cases, also stored at Category:Template sandboxes.

Proposed solution

Backwards-compatible code that extends the detection to many possible names for the local sandbox. The code is easy to maintain or extend if needed, and has been tested. The core change is, instead of this snippet:

'''Any experiments should be conducted and all improvements tested in either the {{nowrap|[[Template:{{#ifexist:{{FULLPAGENAME}}/Test sandbox|{{PAGENAME}}/Test|Template}} sandbox|{{#ifexist:{{FULLPAGENAME}}/Test sandbox|Template:{{PAGENAME}}/Test|template}} sandbox]]}} or your user space before changing anything here.

To have this one:

'''Any experiments should be conducted and all improvements tested in either the {{nowrap|{{#switch:
 {{#ifexist:{{FULLPAGENAME}}/sandbox     |sandbox     |
 {{#ifexist:{{FULLPAGENAME}}/Sandbox     |Sandbox     |
 {{#ifexist:{{FULLPAGENAME}}/test sandbox|test sandbox|
 {{#ifexist:{{FULLPAGENAME}}/Test sandbox|Test sandbox|
 {{#ifexist:{{FULLPAGENAME}}/test        |test        |
 {{#ifexist:{{FULLPAGENAME}}/Test        |Test        |
 }} }} }} }} }} }}
  | sandbox      = [[Template:{{PAGENAME}}/sandbox     |local /sandbox          ]]
  | Sandbox      = [[Template:{{PAGENAME}}/Sandbox     |local /Sandbox          ]]
  | test sandbox = [[Template:{{PAGENAME}}/test sandbox|local /test sandbox     ]]
  | Test sandbox = [[Template:{{PAGENAME}}/Test sandbox|local /Test sandbox     ]]
  | test         = [[Template:{{PAGENAME}}/test        |local /test             ]]
  | Test         = [[Template:{{PAGENAME}}/Test        |local /Test             ]]
  | #default     = [[Template:Template sandbox         |general Template sandbox]]
 <!--ENDswitch-->}}<!--ENDnowrap-->}} or your user space before changing anything here.'''
Main changes
  • Will detect 3 different common names for a local sandbox, with uppercase or lowercase initial (it matters for subpages) ; the standard "/sandbox" is detected first on purpose, but the previous "/Test sandbox" is still there.
  • Will display a more concise label for the link to the available sandbox, such as "the local /Test sandbox" (instead of formerly longer "the Template:Full name of template here/Test sandbox").
  • The boldface opened at the start of the sentence is now closed at its end, just for proper HTML container
  • The careful indentation and alignement doesn't change the output, but makes this part of the code much more readable/editable, and adding new names can be done by mere cut-n-paste because each line of the cascading if or switch has been normalized to the same format.
  • (There are a few more minor changes not seen above, not to the wording but to the source format and the noinclude section such as adding the conditional {{Template sandbox notice}}, see diffs below.)
Testcases and cut-n-paste-ready source

— Komusou talk @ 23:58, 6 September 2007 (UTC)

Yes check.svg Done. Cheers. --MZMcBride 00:57, 7 September 2007 (UTC)

Wikify "your user space"[edit]

How about wikifying the text "your user space" in the template? For instance by making it a clickable link like this:

[[Special:Mypage/Test1|your user space]]

Or is that overkill?

--David Göthberg 10:59, 11 September 2007 (UTC)

I've integrated it to my code suggestion below. — Komusou talk @ 05:35, 24 September 2007 (UTC)

To prevent categorization of development copies[edit]


Suggesting minor technical change: to prevent the current automatic categorization into Category:Intricate templates of development copies left in the standard /sandbox or /testcases – plus tweaks detailled below. Done by replacing this whole bottom part:

<!--ENDswitch-->}}<!--ENDnowrap-->}} or your user space before changing anything here.
|}<includeonly>[[Category:Intricate templates|{{PAGENAME}}]]</includeonly><noinclude>
{{template doc}}

With this tested bottom part (diff of all changes):

<!--ENDswitch-->}}<!--ENDnowrap-->}} or in [[Special:Mypage/sandbox|your user space]] before changing anything here.'''
 | sandbox|testcases = <!--NO CATEGORIZATION OF WORK COPIES-->
 | #default          = [[Category:Intricate templates|{{PAGENAME}}]]
 | {{Template sandbox notice}}
 | {{Template doc}}

Main changes:

  • A #switch will disable categorization when we are inside a local /sandbox or /testcases (so as not to crowd the cat with dev copies of intricate templates, such as [1] or [2]).
  • A #if will display the standard {{Template sandbox notice}} instead of pulling a non-existent {{Template doc}} when we are in a sandbox.
  • Will link "your user space" to Special:Mypage/sandbox as per David Göthberg's suggestion above.
  • Details, such as closing the boldface at the end of the text (this seems to have been lost from the previous suggestion). The rest doesn't change the output or the whitespace but just the source convenience.

Also available: the before-after testcases (note: it is still categorized because the "before" template still does it), and the full source of the suggested revision.

— Komusou talk @ 05:35, 24 September 2007 (UTC)

Needlessly complex – and besides, you're assuming everyone will name their subpages "sandbox" or "testcases". Why not just add an optional "category" parameter, which defaults to "yes", and does not include the category if anything else is supplied? – 11:22, 29 September 2007 (UTC)
What 86 suggests is done in many cleanup templates. Just do {{category|[[Category:Intricate templates|{{PAGENAME}}]]}} and |category=}} will remove the category without any guesswork. Alternatively, a sandbox parameter will work. Two other questions: why is the newer version designed for inclusion on the main template page, as opposed to the /doc subpage, and why is {{pp-template}} included in the newer draft? Making this template for all-in-one usage is much, much, much more complicated than letting it be its own unit, included among other units. GracenotesT § 17:16, 30 September 2007 (UTC)
  • PER X mark.svg Not done - please reach a consensus on this change before replacing the PER template. Thanks, ---J.S (T/C/WRE) 19:19, 30 September 2007 (UTC)
- To 86.133 : Those names are now the standard default names, as already documented and implemented in the general template doc page pattern. Specifically:
  • It has been standardized and documented to have subpages named /doc, /sandbox, and /testcases by default. For the former, see the master doc at Wikipedia:Template documentation. For the two others, see Wikipedia:Template test cases.
  • For this reason, the central {{Template doc}} now used everywhere had been standardized to transclude a subpage named /doc, and to autodetect subpages named /sandbox or /testcases so as to have the doc automatically inform editors that those local tools are available. (In action, see for instance Template:Pre whose doc template automatically detects and informs that "This template has a sandbox (edit) and testcases for editors to experiment.")
  • So we can assume those names, and if some template use other names, it'll be easy to move their subpages to those standard names; I mean, the actual name of those subpages is completely indifferent per se, they're not articles, so it is useful and desirable to have a standard default, and thus to have the templates provide more built-in default behavior based on standardized names, and less parameters required for defining what's the name of the /doc to be transcluded, or the name of the /sandbox, or the name of the /testcases.
  • Another major point is that it is intended that, every time someone is going to work on a new version of a template, he can initialize the content of the sandbox purely by copy-pasting the full source of the current live template, without having to add or remove (and later remove or add) things only intended to differentiate a sandbox copy from a live copy. This basic way of working is the reason why we currently have some sandbox copies of intricate templates needlesly categorized along their live version, so we'd want the template's code be able to work gracefully both in live and sandbox arenas, by autodetecting when it's being transcluded inside a sandbox. Doing otherwise would require the editor who wants to work on a template to copy the live template's code to the sandbox AND check it entirely so as to disable some stuff or add some parameter forbidding categorization, AND when the sandbox copy is ready to go live he'd have to remember to edit out the parts he had to change so as to work in a sandbox or that forbade categorization, so that the new code performs correctly once moved from sandbox to live. Now that's what is needlessly complex and prone to errors.
  • Last but not least, I think replacing the category tag with a mere #switch is hardly "complex", there are no cascading If's or multiple levels of nested conditionals involved.
- To Gracenotes:
  • As explained above, having to add some category= or sandbox= parameter inside the sandbox means that you have to alter the live code just to make it work in the sandbox, and then that you have to remember to disable that once you want to copy-paste the tested sandbox code back to the live template. That is much better handled by having a single code for the template that can automatically detect whether it is inside a /sandbox or not. It is the same rationale for the minor change in #ifeq that will automatically display the {{Template sandbox notice}} or the {{Template doc}} based on where the template detects it is sitting.
  • But the new code is not "designed for inclusion on the main template page", it is still intended for having the {{Intricate template}} tag put on the /doc subpage as it is in the current version. The new code tests if the terminal name of the page it is transcluded on is either "sandbox" or "testcases", that is pages that shouldn't be categorized even in those cases when the a copy of the /doc and its {{Intricate template}} is required to be transcluded on them too. Current examples of miscategorization include Template:Template doc page/sandbox (a sandbox that needs to pull a /sandbox/doc to test its code) and our very own Template:Intricate template/testcases. Of course it's not a systematic problem, under regular conditions our template is only on the /doc and transcluded only on the main page and that's the only categorization. But in some cases, either the /sandbox or the /testcases need to also pull a copy of the doc (such as docs displaying a lot of working/not-working examples) so as to see if the doc still works OK too, and then you have a miscategorized page. It's better to have the template handle this case and not categorize if and when it detects it is activated in a sandbox or testcases content. The #switch doing it is straightforward and neither complex nor a perf problem IMO.
  • The {{pp-template}} isn't changed at all, it's already in the "Before" code and kept in the "After" code, and is in the <noinclude> section, so it's a purely local thing that doesn't concern the pages that uses {{Intricate template}}. — Komusou talk @ 11:10, 1 October 2007 (UTC)

Edit requested 15-Nov-2007[edit]

Yes check.svg Resolved.

{{editprotected}} Please copy the entire {{Intricate template/sandbox}} into {{Intricate template}} without modification.

The functional changes are:

  1. Use {{ambox}} look to match {{Merging}}, {{Mergingfrom}}, {{Template sandbox notice}}, etc.

This is a visual container change only. Displayed text, logic, and categories are unchanged.

Test cases for {{Intricate template}} and {{Intricate template/sandbox}} are availabe for review at {{Intricate template/testcases}}.

Conrad T. Pino 21:47, 15 November 2007 (UTC)

Yes check.svg Done. Cheers. --MZMcBride 01:15, 16 November 2007 (UTC)
Thank you. – Conrad T. Pino 04:15, 16 November 2007 (UTC)

Edit requested 15-Nov-2007 reverted[edit]

The {{ambox}} design is intended for use in article message boxes (which is what "ambox" stands for). It is not intended for use in project templates (which are supposed to look different, thereby enabling users to more easily recognize the distinction). —David Levy 11:58, 16 November 2007 (UTC)

My objective is improved template page appearance. For others benefit I present for review the uneven current version and the uniform reverted edit. {{Ambox}} was a handy path to improved appearance. I'll gladly adopt another appearance if consenses deems distinct looks between namespaces important. Please make a counter proposal. – Conrad T. Pino 12:10, 16 November 2007 (UTC)
This has been discussed extensively. The only reason why the {{ambox}} design appears on that template page is that the {{mergingfrom}} tag is used primarily within articles.
The solution (and this also has been discussed) is to adopt a different standard design for use in template tags (which can be conditionally configured to automatically appear when a multipurpose tag is transcluded in the template namespace). I have a few ideas in mind, and I intend to propose something in the near future. —David Levy 12:52, 16 November 2007 (UTC)
Being relatively new I plead ignorance to Wikipeida history which I'll remedy promptly if you'll share discussion links. I support "...different standard design for use in template tags..." concept and offer my services. However new doesn't mean unskilled. I'm conducting the {{Documentation, template}} merger. {{Documentation}} is a good code example and here is merger talk central. {{Retrieved}} is my first template. It plays a role in {{Imdb name/sandbox}} and {{Imdb title/sandbox}} and is best seen at {{Imdb title/testcases#Template:Imdb title/sandbox}}. {{Infobox Mobile Suit/testcases#Template:Infobox Mobile Suit/sandbox/2}} is a visual exercise.
May we begin by choosing a name? {{Pmbox}} and {{Tmbox}} are both available.
I suggest this because this template is not alone in getting the {{ambox}} treatment. If we redirect the new name to {{ambox}} or a rough draft implmentation I could fix forward now avoiding the 2 step revert and redit later risking later never arriving. Thank you. – Conrad T. Pino 13:41, 16 November 2007 (UTC)
1. Please see Wikipedia talk:Talk page templates and Wikipedia talk:Article message boxes (and those pages' archives).
2. Sure, let's use {{tmbox}}. Per your suggestion, I've redirected it to {{ambox}} for the time being. —David Levy 10:53, 19 November 2007 (UTC)
At 00:10, 19 November 2007 (UTC) I invited David Levy's response to my 13:41, 16 November 2007 (UTC) collaboration proposal on his talk page. – Conrad T. Pino (talk) 00:23, 19 November 2007 (UTC)
And here I am. My apologies for any delays, but I've been rather busy. —David Levy 10:53, 19 November 2007 (UTC)
We have now made the {{ombox}} which is an ambox compatible meta-template but with proper styles for "other pages" message boxes. That is for namespaces like "Wikipedia:" and "Template:". I have now changed this template to use the ombox.
Conrad T. Pino: I hope you like it!
--David Göthberg (talk) 23:42, 17 June 2008 (UTC)

Usage with doc and sandbox subpages[edit]

I'd like to see some guidance on where to add the {{intricate template}} tag. Templates that deserve this tag probably also deserve to have a doc subpage (see Wikipedia:Template documentation), and sandbox and testcases subpages (see Wikipedia:Template test cases). Which of the subpages should have the {{intricate template}} tag? My main question is: tag the template itself, or tag the doc page which is transcluded into the template? A secondary question is: If tagging the template itself, should the sandbox version also be tagged? —AlanBarrett 16:54, 1 May 2008 (UTC)

1: I added an explanation and an example to the documentation that shows how we usually do it. That is, we usually add this template at the top of the /doc page.
2: I see no reason to tag /sandbox pages with this template.
--David Göthberg (talk) 00:16, 18 June 2008 (UTC)

Ombox and icon[edit]

I just updated this template to use the {{ombox}} "other pages message box meta-template". I am pretty sure the {{intricate template}} should be of yellow minor-warning type, not orange major-warning type. But I am not sure which icon to use apart from that the icon should be yellow. These are the icons that I am thinking of:

What do you people think?

--David Göthberg (talk) 23:35, 17 June 2008 (UTC)

Seeing as this style of icon is in use quite a lot on Wikipedia, I suggest using this yellow version, although I really don't mind the current one. Emblem-important-yellow.svg

--.:Alex:. 15:00, 20 June 2008 (UTC)

/doc template pages[edit]


If {{Intricate}} is put on a /doc page, can someone change it (like Template:Friendly standard installation) so that it doesn't show up as a cat on the /doc page? (I don't know exactly how myself.) MathCool10 Sign here! 04:10, 14 April 2009 (UTC)

Good idea. — SMcCandlish [talk] [cont] ‹(-¿-)› 07:51, 14 April 2009 (UTC)
 Done. I used {{Friendly standard installation}}'s comparison of BASEPAGENAME and PAGENAME. I tested the change in my local sandbox, and it seems to work. Note that this will also rid Category:Intricate templates of quite a few sandboxes (in both the Template: and User: namespaces). — TKD::{talk} 08:10, 14 April 2009 (UTC)
Woo hoo! — SMcCandlish [talk] [cont] ‹(-¿-)› 08:44, 14 April 2009 (UTC)
TKD: Your change made it so when this template is correctly used on sub-templates like {{str len/core}}, then they don't get categorised any more. But it doesn't matter much. And such usage is probably pretty unusual anyway. So I agree with your update.
--David Göthberg (talk) 00:37, 15 April 2009 (UTC)
Ah; I forgot about the /core templates. I suppose that we could add an exemption for that class of meta-templates. — TKD::{talk} 02:33, 15 April 2009 (UTC)
You kind of misunderstand me. I just wanted to mention that no subpages, not even /core sub-templates and similar, will get categorised. Since I think many users don't understand the code used and thus don't understand what it does.
I think it doesn't matter that the the template no longer categorises subpages. Since usually their main template page will also have the {{intricate template}} and thus the main template will be categorised. And I anyway don't even see the need for the Category:Intricate templates. (But the category doesn't hurt, and someone else might have some use for it, so I don't mind the category either.)
And there is no way for the template to know which subpages should be categorised and which should not. Since there are many different names for subpages. Some sub-templates have other names than "/core", and some templates have several sandboxes and test pages so there are many names for those too. So don't try to add more detailed exemptions in the code, it will just be messy. So the current code that simply doesn't categorise any subpages is good enough.
--David Göthberg (talk) 09:39, 15 April 2009 (UTC)
Ah; ok. — TKD::{talk} 10:33, 15 April 2009 (UTC)

mild rewording request...[edit]

"You are encouraged to familiarise yourself with its setup and parser functions before editing the template" is a bit odd in the grammar department. as well as the fact that it uses the turgid British 'familiarise' rather than the hip, dynamic American 'familiarize' - I mean, when are you Brits going to learn English? Face-grin.svg What do you all think about "You should review the use of parser functions and study the code carefully before editing this template" instead? --Ludwigs2 19:34, 26 April 2009 (UTC)

Parser functions link[edit]


Can an admin please change the link [[M:Parser functions|parser functions]] to [[m:Help:Parser function|parser functions]] to prevent a redirect? Thanks. MC10 (TCGBL) 01:07, 13 April 2010 (UTC)

Yes check.svg DoneTheDJ (talkcontribs) 15:25, 14 April 2010 (UTC)

Link is broken. When visiting from I get this error message:

A database error has occurred. Did you forget to run maintenance/update.php after upgrading? See: https://www.mediawiki.org/wiki/Manual:Upgrading#Run_the_update_script Query: REPLACE INTO `math` (math_inputhash,math_outputhash,math_html_conservativeness,math_html,math_mathml) VALUES ('�z���ZW[��jI�I?B',NULL,'0','','') Function: MathRenderer::writeDBEntry Error: 1048 Column 'math_outputhash' cannot be null ( TheraBlueray 12:53, 14 March 2013 (UTC) — Preceding unsigned comment added by Therablueray (talkcontribs)

TfD notification[edit]

I've nominated this unnecessary template for deletion; please add:

{{Template for discussion/dated |page=Intricate template |link=Wikipedia:Templates for discussion/Log/2014 March 6#Template:Intricate template |help=off}}

to the template. Andy Mabbett (Pigsonthewing); Talk to Andy; Andy's edits 22:24, 6 March 2014 (UTC)

Done --Redrose64 (talk) 23:09, 6 March 2014 (UTC)

Protected edit request on 7 March 2014[edit]

Please wrap the TfD tag in noinclude tags. It's currently categorizing every page it appears on for deletion. Jackmcbarn (talk) 04:25, 7 March 2014 (UTC)

Done. Callanecc (talkcontribslogs) 05:33, 7 March 2014 (UTC)