Template talk:Para

Latest comment: 2 months ago by Trappist the monk in topic How to syntaxhighlight a standalone parameter?

Please use code rather than tt

edit

Please change the template to use <code> rather than <tt>. The <code> element is more appropriate, since the text represents computer code (namely, Wiki markup). Thanks. Eubulides (talk) 15:26, 12 September 2009 (UTC)Reply

  Done Hersfold (t/a/c) 21:47, 12 September 2009 (UTC)Reply

Suggested changes, February 2013

edit
  1. replace the characters | and = with their equivalent HTML entities; this may prevent unexpected behaviors if this template is used inside another template or in a table.
  2. remove extra | at the closing of the #if (there's no else)
  3. rearrange parameters so that nowrap covers everything
<code><span style="white-space:nowrap;">&#124;{{{1|}}}{{#if:{{{1|}}}|&#61;}}{{{2|}}}</span></code>

Tested and working on another wiki I maintain. Thanks —capmo (talk) 22:51, 17 February 2013 (UTC)Reply

3 seems like a valid change, but can you demonstrate that 1 and 2 are causing problems? --Redrose64 (talk) 23:14, 17 February 2013 (UTC)Reply
I can't demonstrate that 1 is causing problems, but the HTML equivalents are surely harmless; this would be just a preventive measure, but you can use this code instead if you prefer:
<code><span style="white-space:nowrap;"><nowiki>|</nowiki>{{{1|}}}{{#if:{{{1|}}}|<nowiki>=</nowiki>}}{{{2|}}}</span></code>
Suggestion 2 is just better programming practice: currently, if {{{1}}} is not given, the #if has to check its "else" clause and return it (in fact, an empty string); without this | it would return nothing, which is possibly more efficient. But if you check the changes above, the #if syntax was simplified even more by removing the first parameter from inside it. —capmo (talk) 01:48, 18 February 2013 (UTC)Reply
Per WP:TESTCASES I've put proposals 2 & 3 into Template:Para/sandbox (with modification: when a <span>...</span> element has the same scope as another HTML element, the attributes may be moved from the SPAN to the other); and I've set up Template:Para/testcases. These do not demonstrate problems inside either tables or templates, therefore there is no problem with not implementing proposal 1. --Redrose64 (talk) 10:57, 18 February 2013 (UTC)Reply
Fine by me! —capmo (talk) 11:43, 18 February 2013 (UTC)Reply
  Done --Redrose64 (talk) 14:13, 18 February 2013 (UTC)Reply

Styling

edit

The 22 July 2014 <code>...</code> css change adds unnecessary boxes. I propose to replace <code>...</code> with <kbd>...</kbd> which is more semantically correct and displays the text in the same monospaced font.

Trappist the monk (talk) 15:56, 10 August 2014 (UTC)Reply

Support. The old way was perfectly good. This new style is visually cluttered. – Jonesey95 (talk) 03:28, 11 August 2014 (UTC)Reply
Or use <code style="color:inherit; border:inherit; padding:inherit;"> as recommended at VPT, to preserve the semantic meaning. – Jonesey95 (talk) 22:35, 11 August 2014 (UTC)Reply
No, <kbd>...</kbd> is not correct, except for the value of the parameter, not its name or the = character (i.e., in a case of |foo=bar, the bar part should be in <kbd>...</kbd>, but the foo and = part in <code>...</code>. So, fix that, then do as Jonesey95 suggests with regard to use of <code>...</code> here. In general, no change to what MediaWiki is doing, or the en.wiki site-wide style sheets for that matters, should ever lead to us proposing to replace the underlying tag to work around a style problem; just fix the style. And perhaps keep closer watch on and inject more input into discussions that are resulting in questionable site-wide or MW-wide style changes (and there sure have been a lot of them this year).  — SMcCandlish ¢ ≽ʌⱷ҅ʌ≼  08:41, 13 August 2014 (UTC)Reply
I disagree. W3C says: The kbd element represents user input (typically keyboard input, although it may also be used to represent other input, such as voice commands). To use this template, editors must 'input' the entire template from the opening bracket to the closing bracket into the edit window.
Trappist the monk (talk) 11:28, 13 August 2014 (UTC)Reply
@Trappist the monk: (Sorry for the late response.) That's an implausible reductio ad absurdum interpretation, because the same could be said of all source code, which would render the <code> element redundant, yet it's been kept, and so has <kbd> (and <samp> and <var>, but not <tt>, which really was redundant with <samp>). The <code> element is expressly for code as distinguished from user input (i.e. values supplied). In actual practice no one hardly anyone bothers marking up values in source with <kbd>, because it's too tedious (and some think it never belongs in there, interpreting <kbd> as solely representing interactivity). When found in the wild and used with the related tags, and not being abused for non-semantic purposes or the wrong one, it's almost exclusively used for user, not coder, input to an application/device/process, e.g. typed responses to prompts, data entry into fields, or spoken commands like Siri: redial last number. The <samp> element represents output. Proper usage of all four of the (current) relevant markup elements would be "The command <code>fink install <var>port-name</var></code> may prompt you to select a specific variant. At the <samp>Please select which package to install</samp> prompt, enter your choice as a numeral, e.g. <kbd>3</kbd> for the third option in the list. (Renders as: The command fink install port-name may prompt you to select a specific variant. At the Please select which package to install prompt, enter your choice as a numeral, e.g. 3 for the third option in the list.) An utter purist would also wrap that particular <var> in a <kbd> since it represents a momentary user choice, not pre-determined code, but in practice you'd be hard pressed to find anyone anywhere being that anal about the semantics. Another nitpicker might change part of that example to </code><var>port-name</var>, but that's the finest hairsplitting, and debatable semantics.

Since the <tt> element is no longer supported as of HTML5, we need figure out what the MW devs' migration plan is, if they have one. We're either going to have to stop using it, or they're going to have to translate it on-the-fly into something else. If the former, we could: A) Use <samp> to encompass former use of <tt> (which was meant to reflect "teletype", or machine-mediated human communication; that a subclass of machine output, represented by <samp>). Or, B) Use a template to wrap content in <span style="font-family: monospace;">...</span>, with no particular semantic value. The latter is probably better, since editors have been broadly abusing the <tt> element as a quick-and-dirty way to get monospace, just as they misuse ''...'', for emphasis not purely typographic italicization, when they should be using <em> (or {{em}}) for emphasis. But editors are loath to give up what they're familiar with, so the least "brittle" way to do this would be for MW to translate <tt> on the fly, while we deprecate its use so that people move away from it and no new editors pick up the habit.  — SMcCandlish ¢ ≽ʌⱷ҅ʌ≼  19:26, 20 July 2015 (UTC)Reply

One problem with using <kbd>...</kbd> is that the style for that element may be changed at some point as has just been done with <code>...</code>, and then we're back here again. If we stick with <code>...</code> and just style it ourselves, we avoid that potential problem. – Jonesey95 (talk) 13:18, 13 August 2014 (UTC)Reply
True, but let us not worry about what might be. Doing so can paralyze us into inaction. Perhaps we should choose to ignore the whole semantics issue and simply change <code>...</code> to <span style="font-family: monospace,Courier;">...</span>.
Trappist the monk (talk) 13:40, 13 August 2014 (UTC)Reply
It sounds like there would be consensus for that. – Jonesey95 (talk) 14:02, 13 August 2014 (UTC)Reply
Definitely not. Source code should be marked up as code, always.  — SMcCandlish ¢ ≽ʌⱷ҅ʌ≼  19:22, 13 August 2014 (UTC)Reply
@SMcCandlish: Not Jonesey95's suggestion - mine. See Wikipedia:Village pump (technical)/Archive 129#Displaying 'code' font text and search for "inherit". --Redrose64 (talk) 15:24, 13 August 2014 (UTC)Reply

Site-wide solution

edit
 – Consolidating fragmented discussions.

While the display problem noted at Help talk:Citation Style 1/Archive 5#Restore error message style is an unintended consequence of the CSS changes to the <code>...</code> element (they don't seem to have considered that some inline uses don't work well with boxes), the effect the changes have on {{para}} and {{tag}} are not, but are precisely the intended effect of that change. I personally still disagree with the addition of the boxes to this element, but that's a discussion to raise with the MediaWiki developers in the long term, to fix common/shared.css, and in the short term to bring up at MediaWiki:Common.css to fix at en.wikipedia site-wide, if a consensus develops on this site to buck this change. We should not be monkeying with it, in ways that break semantic HTML, on a template-by-template basis. Doing so would also produce inconsistent results. Quite a few templates are used in marking up source code, and they all use (or should use) the <code>...</code> element appropriately (I'm unaware of any that don't). Failing to account for even one of them when making tweaks like any of those suggested above will result in boogered template documentation pages that use such templates to lay out source. Might also affect actual articles that illustrate source code.  — SMcCandlish ¢ ≽ʌⱷ҅ʌ≼  19:22, 13 August 2014 (UTC)Reply

I've been using <code style="background:transparent;border:none;"> to render <code> without a border or changing the background – should this be <code style="background:inherit;border:inherit;"> (or something like it) instead..? Sardanaphalus (talk) 11:05, 11 October 2014 (UTC)Reply
@Sardanaphalus: See #Styling above; the use of inherit (but three of them, not two) was first suggested by me at Wikipedia:Village pump (technical)/Archive 129#Displaying 'code' font text where I proposed <code style="color:inherit; border:inherit; padding:inherit;">Example</code>Example← and this has been mentioned elsewhere, such as Help talk:Citation Style 1/Archive 5#Restore error message style and Template talk:Tag#Style - which is where this thread originated. --Redrose64 (talk) 19:27, 11 October 2014 (UTC)Reply
Thanks for these pointers. I'm not sure, though, whether using the "inherit" approach is to be preferred long-term; if it is, I'll switch; see e.g. thread immediately below. Sardanaphalus (talk) 09:28, 12 October 2014 (UTC)Reply
Why do you see inherit as a problem? --Redrose64 (talk) 12:36, 12 October 2014 (UTC)Reply
I don't think "inherit" is a problem, unless it breaks in some browser, but inline styles are stripped for mobile. Anomie 21:46, 12 October 2014 (UTC)Reply
  • I was wondering whether inherit rather than the specific styling (transparent/none) should be preferred – but I imagine it won't matter if the styling ends with e.g. a "{{{style|}}}" to accommodate a situation where neither is desired. Sardanaphalus (talk) 11:54, 14 October 2014 (UTC)Reply
I noticed the other day that perhaps transparent might be the better choice. Currently, CS1 citations use inherit. See the CS1 error message this user page conversation, the error message doesn't display as I think it should. A quick experiment showed that using transparent might be preferable.
Trappist the monk (talk) 11:47, 18 October 2014 (UTC)Reply
Sounds reasonable.  — SMcCandlish ¢ ≽ʌⱷ҅ʌ≼  19:26, 20 July 2015 (UTC)Reply

|plain option

edit

[1] This (as of this message, the current) version in the sandbox includes a |plain option that adds the styling "background:transparent;border:none;{{{style|}}}" to the <code>...</code> used by the template, i.e. renders it more plainly (see testcases). Should I request that the live version is updated accordingly? Sardanaphalus (talk) 09:28, 12 October 2014 (UTC)Reply

I use this template a lot and am in favor of a plain version. Perhaps if you win consensus you could also create a typing-aid template, {{parap}} or {{ppara}} or {{plp}} or some such other quick and easy name, that would take the same parameters as {{para}} and add the plain parameter:
{{para|plain|{{{1}}}|{{{2}}}}} – this particular snippet is not tested
Trappist the monk (talk) 14:36, 12 October 2014 (UTC)Reply
  • {{parapl}} currently redirects to {{paraplain}}, a template that's a plainly-styled {{para}}, but I thought it might be better to provide the plain option as part of {{para}} itself rather than separately – but maybe not..?
Thanks for your feedback, Sardanaphalus (talk) 11:54, 14 October 2014 (UTC)Reply
There are those who believe that forks like {{paraplain}} are a bad thing and will seek to have them deleted. I don't care either way, but it is why I suggested a typing-aid template instead of a fork.
Trappist the monk (talk) 12:13, 14 October 2014 (UTC)Reply

Protected edit request on 18 October 2014

edit

Per the discussion above, please replace the current template with this sandbox version (the current version as of this message). Sardanaphalus (talk) 10:28, 18 October 2014 (UTC)Reply

Declined; this duplicates existing functionality (paraplain). -- [[User:Edokter]] {{talk}} 13:42, 18 October 2014 (UTC)Reply
I think you might need to do a TfD or something like it over at {{paraplain}} in order for this update to make sense. – Jonesey95 (talk) 00:58, 19 October 2014 (UTC)Reply
  Not done: @Sardanaphalus: There doesn't seem to be a consensus for this at the moment. Jonesey95's suggestion of a TfD at {{paraplain}} sounds like a good next step. — Mr. Stradivarius ♪ talk ♪ 11:28, 20 October 2014 (UTC)Reply
  • The standalone {{paraplain}} has now been deleted, but, as the sandbox version linked in the original request above was missing a <includeonly>...</includeonly>, I'm restoring the request here:
Per the discussions above, please replace the current template with this sandbox version (the current version as of this message).

Sardanaphalus (talk) 16:56, 1 November 2014 (UTC)Reply

Needs work... The entire code is duplicated for the sake of the added unnamed parameter. There must be a better way. -- [[User:Edokter]] {{talk}} 21:36, 1 November 2014 (UTC)Reply
  • Code with variation not unprecedented, especially single lines as here. If you have something more elegant that preserves the convenience of the {{{1}}}=plain/etc option while maintaining readily comprensible code, please place in the sandbox. In the meantime,
Per the discussions above, please replace the current template with this sandbox version (the current version as of this message).
Sardanaphalus (talk) 11:34, 6 November 2014 (UTC)Reply
This would be better implemented as {{para|name|val|plain=yes}}, rather than {{para|plain|name|val}}. Using the first positional parameter for both formatting and for content is going to be confusing. Also, what happens when you want to display a parameter that is named "plain", "pln", "pl" or "p"? I bet that there are already some transclusions out there that do exactly this that would be broken by the proposed update. — Mr. Stradivarius ♪ talk ♪ 13:00, 6 November 2014 (UTC)Reply
How about something like this? — Mr. Stradivarius ♪ talk ♪ 13:12, 6 November 2014 (UTC)Reply
I'd prefer {{#if:|...}} to allow plain=1. Also, is the open style parameter an intended feature? -- [[User:Edokter]] {{talk}} 14:14, 6 November 2014 (UTC)Reply
Fair enough about #if. About {{{style}}}, I just included it because Sardanaphalus did. Personally, I don't think it's really necessary. — Mr. Stradivarius ♪ talk ♪ 16:15, 6 November 2014 (UTC)Reply
I'll update to the current sandbox code then. We can discuss a style parameter separately. -- [[User:Edokter]] {{talk}} 20:38, 6 November 2014 (UTC)Reply
Edokter: Did you intend to drop the trailing '=' when {{para}} has only one parameter? |ps= |ps=none
Trappist the monk (talk) 21:04, 6 November 2014 (UTC)Reply
Yes I did. But now you mention it... I may have made a mistake in asuming one parame always means the value and not the name. -- [[User:Edokter]] {{talk}} 21:11, 6 November 2014 (UTC)Reply
  • Where's the consensus for the change just made to the template..? Is "being bold" acceptable with a page as protected as this template..? Sardanaphalus (talk) 00:37, 7 November 2014 (UTC)Reply
    • Perhaps read the above? Consensus can be established by the absence of any objections. The end result incurs no functional change, except to add the |plain= option as a named parameter. -- [[User:Edokter]] {{talk}} 08:27, 7 November 2014 (UTC)Reply
      • "Consensus can be established by the absence of any objections."
That's interesting, as it deviates from what I've experienced. To trigger a reversion, therefore, I should state that I object to the change made..? Sardanaphalus (talk) 17:26, 7 November 2014 (UTC)Reply
More important, the reason you object. -- [[User:Edokter]] {{talk}} 22:13, 7 November 2014 (UTC)Reply

Strip whitespace etc from parameter values received?

edit

Should the values handed to this template be stripped of any whitespace etc..?

<code class="nowrap"><includeonly<nowiki>|</nowiki></includeonly>{{#if:{{{1|}}}|{{#if:true|{{{1}}}}}<nowiki>=</nowiki>}}{{#if:true|{{{2|}}}}}</code>

Sardanaphalus (talk) 10:19, 26 October 2014 (UTC)Reply

Edit protected request: add space

edit

To improve readability, please change:

<nowiki>=</nowiki>

to:

<nowiki>= </nowiki>

(i.e. add a space after the equals sign). Better still, perhaps the protection level could be lowered, so that template editors can make such changes? Andy Mabbett (Pigsonthewing); Talk to Andy; Andy's edits 12:30, 27 October 2014 (UTC)Reply

  Not done: please establish a consensus for this alteration before using the {{edit protected}} template. This proposal is contrary to that in the previous section. Personally I disagree with the addition of a space, because the absence of the space assists in the association of all four tokens (pipe, name, equals, value) so that when you're explaining something to a newbie by way of a code sample on a talk page, they see that the whole string is to be copied. --Redrose64 (talk) 12:38, 27 October 2014 (UTC)Reply
Surely the code-highlighting serves that purpose? Andy Mabbett (Pigsonthewing); Talk to Andy; Andy's edits 12:40, 27 October 2014 (UTC)Reply
That functionality is already available to those who want it:
{{para|something|else}}|something=else
{{para|something |else}}|something =else
{{para|something| else}}|something= else
{{para|something | else}}|something = else
Trappist the monk (talk) 12:42, 27 October 2014 (UTC)Reply
Thank you; I'm aware of that, and my suggestion stands. There does seem to be a contrary proposal to strip such spaces, above which I'd missed, and to which I'd object Andy Mabbett (Pigsonthewing); Talk to Andy; Andy's edits 20:35, 27 October 2014 (UTC)Reply

Please offer a named parameter tag that defaults to code

edit

Please replace the hardcoded code tag from <code> to <{{{tag|code}}}> so the fixed width font can represent a semantic. For me I like to use <code> to mean "toward the computer" and <kbd> to mean "toward the person". Someone else will have a semantic for when they like to use <tt>. I did {{param}} already. — CpiralCpiral 08:09, 14 July 2015 (UTC)Reply

It seems a like a nice addition to a more general solution, and it looks to be perhaps cleaner coding internally than the setup using |plain=. — CpiralCpiral 08:26, 14 July 2015 (UTC)Reply

  • Support something like this in theory. but only for {{{2}}} (<kbd> is semantically wrong for the parameter name, pipe, and equals sign) and use #switch to whitelist specific values code (default), kbd, and var. The <tt> element has been killed in HTML5 so we need to wean away from it; <samp> doesn't apply; and other values would be semantically wrong or useless, depending on what someone put in there. If we want to satisfy purists, also have a switch option for kbdvar to use both at once. This doesn't affect or relate to |plain=, which strips the style=... code (the box and grey background).

    What it would look like:

  • |para=code
  • |para=kbd
  • |para=var
  • |para=kbdvar
with |plain=:
  • |para=code
  • |para=kbd
  • |para=var
  • |para=kbdvar

The most common use case for this would be {{para|tag=var|content}}, which is the same character length asn {{para|{{var|content}}}} but visually easier to parse and less error-prone, while obviously shorter than {{para|<var>content</var>}} which is also a mixture of wikimarkup and HTML, which not everyone cares for.

Additional transclusion code conciseness could be achieved (at the cost of source code detail) by using {{{3}}} as an alias of {{{tag}}}: {{para|content|var}} or {{para|content|3=var}} when necessary.  — SMcCandlish ¢ ≽ʌⱷ҅ʌ≼  20:11, 20 July 2015 (UTC)Reply

Suggested changes, January 2019

edit

I would like to be able use this template to show key=value pairs for other types of blobs. For example given this URL

https://books.google.com/books?id=fIrcBQAAQBAJ&pg=PA165

Given a hypothetical new |sep= argument:

{{para | sep=& | pg | PA165 }}
produces: &pg=PA165

This would work with any separators like "?" or "," .. or if blank then no separator such as showing a basic key=value pair

The display "sep" would default to "|"

-- GreenC 16:43, 3 January 2019 (UTC)Reply

This seems like a job for a different template. This template's documentation has a pretty concise, clear scope: This template is for giving examples of template parameter source code.
What is your actual goal? Where would you use this new functionality? It seems to me that what might work better is a template that represents the combination of code and nowiki tags. I'm surprised that I've never come across that template. – Jonesey95 (talk) 21:16, 3 January 2019 (UTC)Reply
I use it in talk pages when discussing key=value pairs. That's all this template does. Which key=value pair can easily be made universal so it will work with anything. Documentation can be changed. I agree though about a template that will wrap the text in code-nowiki tags would be useful.. type that out way too often. -- GreenC 22:40, 3 January 2019 (UTC)Reply
I just discovered {{CoNo}}, which does just that. Primefac (talk) 16:38, 4 January 2019 (UTC)Reply
  Not done: please make your requested changes to the template's sandbox first; see WP:TESTCASES. --Redrose64 🌹 (talk) 14:19, 5 January 2019 (UTC)Reply

no line-breaks in output

edit

The current output allows line-breaks, which in most cases makes it hard to read. This is clearly seen on mobile devices when viewing the table in the doc for this template.

In {{val}} people have attempted to avoid this by setting the size of columns in the table, which I think is a work-around, not a solution. The real solution is to make this template output html/css to prevent line breaks. Either by default, or make that an option you can enable with a parameter. SkyLined (talk) 14:12, 3 April 2023 (UTC)Reply

Add nowrap for para

edit

I used {{para}} and got a line break after the pipe character. This looked ridiculous and makes little sense. I assume other line breaks would be possible, such as after a hyphen in the parameter name. Adding {{nowrap}} or equivalent would make far more sense than requiring editors to code, e.g., {{nowrap|{{para|archive-url}}}}. While Note 2 below the table at "General-purpose formatting" speaks of nowrap options, I'm at a loss to see how they help my situation. In any event, I don't see how automatic, unconditional nowrap for all uses of {{para}} could be the slightest bit controversial. At the very least, an option could be added to suppress the default of nowrap for cases where horizontal space is limited, such as in tables.

See also #no line-breaks in output, where a request for this was ignored (or never seen) 13 months ago. As to If the proposed edit might be controversial, discuss it on the protected page's talk page before using this template., well, we've seen how effective that was. ―Mandruss  19:24, 5 May 2024 (UTC)Reply

  Not done for now: please establish a consensus for this alteration before using the {{Edit template-protected}} template. --Redrose64 🌹 (talk) 21:26, 5 May 2024 (UTC)Reply
@Redrose64: Sheesh. As I said: Already tried and failed above. Are you suggesting I should take this to the Pump? ―Mandruss  21:30, 5 May 2024 (UTC)Reply
Yes, apparently. Now at WP:VPR#Add nowrap for para. ―Mandruss  21:55, 5 May 2024 (UTC)Reply
History:
  • template allowed wrapping from its creation 28 March 2008‎
  • nowrap added at this edit by Smith609 5 March 2011
  • nowrap adjusted at this edit by Redrose64 18 February 2013
  • nowrap adjusted at this edit by Edokter 30 March 2014
  • nowrap removed at this edit by TheDJ 22 July 2022 – class="nowrap" changed to class="tpl-para"; don't know where that class is defined
  • word-break:break-word added at this edit by TheDJ 22 July 2022 – at this writing, this is the current form
Trappist the monk (talk) 23:36, 5 May 2024 (UTC)Reply

How to syntaxhighlight a standalone parameter?

edit

Is there a template that can easily highlight the "bar" in {{Foo|bar=baz, without the need for {{Foo? {{Para}} or {{Param}} seem like the most appropriate places to find this, but I could not. This would be very useful for template documentation.

Unfortunately, all permutations of |bar= on its own only produce |bar=.   ~ Tom.Reding (talkdgaf)  12:54, 4 July 2024 (UTC)Reply

The template might be modified so that it renders:
<code class="mw-highlight mw-highlight-lang-wikitext mw-content-ltr" dir="ltr">|<span class="nl">bar</span>=</code>|bar=
I have not attempted to experiment with the template itself.
Also, the template does support red/green coloring but those parameters also color the pipe, the parameter name, and the assignment operator:
|bar={{para|bar|mxt=yes}}
|bar={{para|bar|!mxt=yes}}
Are those colors sufficient for template documentation?
Trappist the monk (talk) 13:52, 4 July 2024 (UTC)Reply
@Trappist the monk: thank you for providing the appropriate code class!
The red/green option is definitely not appropriate for this base-case scenario, since it would be unnecessarily confusing to have the template name and any standalone parameters both the same color in different parts of the documentation. Standalone parameters should be the same color as they are when next to their parent template (muddy yellow).
Perhaps a new parameter can be added to the template to produce |bar=, say |syn=yes, for "syntax"?   ~ Tom.Reding (talkdgaf)  15:03, 4 July 2024 (UTC)Reply
@Trappist the monk: implemented in the sandbox!
{{para/sandbox|foo|syn=yes}}|foo=
Does anyone see an issue with making this live?   ~ Tom.Reding (talkdgaf)  14:47, 4 August 2024 (UTC)Reply
If one is to believe this search there are fewer than 10 {{para}} templates that use either of |mxt= or |!mxt=. That makes me wonder if the better solution is to get rid of those two parameters in favor of |color= or |highlight= or some such with syntax as the default coloring so editors don't have to remember multiple parameter names so:
{{para|foo}}|foo= – default uses <syntaxhighlight>...</syntaxhighlight> for coloration
{{para|foo|color=red}}|foo=
{{para|foo|color=green}}|foo=
{{para|foo|color=none}}|foo= – don't know why this would be necessary but some editors might not want to colorize because reasons
I suspect that making this choice will simplify the code; one <code>...</code> tag as it exists now and then switch on {{{color|}}} to create the opening <span> tag and its attribute:
<span {{#switch:{{{color|}}}
      |red=style="color:#8B0000;"
      |green=style="color:#006400;" <!-- this 'green' color choice might want to be revisited -->
      |none=
      |#default=class="nl"
      }}>{{{1|}}}</span>
caveat lector: the above not tested
If one is to believe this search |style= is not used so I would propose that we delete support for that parameter.
Trappist the monk (talk) 16:43, 4 August 2024 (UTC)Reply
Yes, |color=/|highlight= (|highlight= can be the alias) are both more intuitive than |mxt=/|!mxt=. Also, the boolean pair |mxt=/|!mxt= logically doesn't work when 3rd & 4th options are available, syntax & none, so it makes sense to retire |mxt=/|!mxt=.
Yes, one <code>...</code> tag is preferable, since 2 adjacent tags produce an undesired thin vertical separator between them, visible in Template:Para/testcases#Spacing + syn=y & elsewhere.
|style= seems harmless to keep, and potentially useful, but I don't feel strongly either way. However, if keeping it makes implementing the above significantly more difficult, then remove it.   ~ Tom.Reding (talkdgaf)  11:41, 6 August 2024 (UTC)Reply
|style= is gone. Here is a new sandbox version. In all of these examples, the pipe and 'bar' are colored #333, '=' is colored #666, these are the current <syntaxhighlight>...</syntaxhighlight> colors
  1. {{para/sandbox|foo|bar}}
    |foo=bar – 'foo' uses <syntaxhighlight>...</syntaxhighlight> colors (currently #767600)
  2. {{para/sandbox|foo|bar|color=none}}
    |foo=bar – nothing in the output is colored
  3. {{para/sandbox|foo|bar|color=red}}
    |foo=bar – 'foo' uses #8B0000; same color used by {{!mxt}}
  4. {{para/sandbox|foo|bar|color=green}}
    |foo=bar – 'foo' uses #008000; a slightly brighter green than the color used by {{mxt}} (#006400)
Not sure that this template should be subst'd because it produces a lot of stuff that, to my mind, is just so much clutter:
  • {{para/sandbox|foo|bar}}
    <code class="tpl-para" style="word-break:break-word; " class="mw-highlight mw-highlight-lang-wikitext mw-content-ltr" dir="ltr">&#124;<span class="nl">foo</span><span class="o">&#61;bar</span></code>
Trappist the monk (talk) 22:16, 6 August 2024 (UTC)Reply
For some reason, these changes aren't being reflected in Template:Para/testcases, even after a purge, even with only 1 example (to rule out un/mis-closed tags), but they appear as intended (thanks to your descriptions!) above...
That aside... "bar" in examples 1, 3, 4 was darker than the "bar" here: {{example|foo=bar, which I fixed.
The brighter green is definitely better, and if people want the lighter version or some other color, then they can easily add it to the #switch.
No comment on the subst-y-ness, since I've no experience with/need of it.
Looks fantastic!   ~ Tom.Reding (talkdgaf)  14:35, 7 August 2024 (UTC)Reply
Good catches. Thanks. substing support is gone. Rewritten to simplify and add ability to include other colors. See ~/testcases.
Trappist the monk (talk) 17:11, 7 August 2024 (UTC)Reply
Even more functional & user-friendly. I only made 1 small tweak to the sandbox.
I added more testcases, and the only discrepancy I saw was |section vs. |=section (Live vs. Sandbox).   ~ Tom.Reding (talkdgaf)  09:53, 8 August 2024 (UTC)Reply
Fixed that. Good catch.
Trappist the monk (talk) 11:36, 8 August 2024 (UTC)Reply
@Trappist the monk: no other comments after a month; time to go live?   ~ Tom.Reding (talkdgaf)  10:32, 11 September 2024 (UTC)Reply
Go ahead. Umm, no. We should think about dark mode. In dark mode, <syntaxhighlight>...</syntaxhighlight> renders over a background color of #f8f8f8. Should we mimic that? Or, should we strike out on our own and develop new colors (assuming we can figure out how to detect dark mode)?
Trappist the monk (talk) 11:58, 11 September 2024 (UTC) 16:04, 11 September 2024 (UTC) changed my mind.Reply
Definitely mimic.   ~ Tom.Reding (talkdgaf)  11:17, 12 September 2024 (UTC)Reply
And |mxt= and |!mxt= need to be replaced with |color=green and |color=red respectively. See this search.
Trappist the monk (talk) 16:04, 11 September 2024 (UTC)Reply
Yes indeed. I was actually preparing to do that yesterday, but luckily I took my sweet time and didn't go live.   ~ Tom.Reding (talkdgaf)  11:17, 12 September 2024 (UTC)Reply
Tweaked ~/styles.css so that {{para}} on Minerva undark skin renders with the background color used by <syntaxhighlight>...</syntaxhighlight>. Does not change rendering on Minerva dark skin.
Trappist the monk (talk) 14:46, 13 September 2024 (UTC)Reply

dark mode

edit

I have hacked the sandbox and created Template:Para/styles.css. These changes, at the least, make the rendered text somewhat readable. No doubt, there are better color choices to be made that look more-or-less the colors used by the undark mode. The chosen colors also need to be contrast accessible. —Trappist the monk (talk) 18:42, 11 September 2024 (UTC)Reply

Assuming Template:Para/styles.css is what's displayed at Template:Para/testcases, para output looks similar to <syntaxhighlight>...</syntaxhighlight> in both light and dark modes.   ~ Tom.Reding (talkdgaf)  11:17, 12 September 2024 (UTC)Reply
I'm confused. Here you seem to be in favor of supporting dark mode with our own color scheme yet, above you (more emphatically, I think) seem to be supporting a notion that we should simply mimic <syntaxhighlight>...</syntaxhighlight>. So what do you really mean?
Trappist the monk (talk) 11:53, 12 September 2024 (UTC)Reply
The whole point of this is to make {{para}} produce parameter output identical to <syntaxhighlight>...</syntaxhighlight>. If that happens, then both {{para}} & <syntaxhighlight>...</syntaxhighlight> should look the same in dark & light modes, right? In the testcases, to me, they do. Perhaps I'm not seeing styles.css being applied? All I did was purge the page. Is there anything more I should be doing? I have minimal experience with CSS.   ~ Tom.Reding (talkdgaf)  12:36, 12 September 2024 (UTC)Reply
You did, at the top of the ~/testcases page, choose vector (2022) as the skin and then dark mode from menu at right, didn't you?
Trappist the monk (talk) 13:29, 12 September 2024 (UTC)Reply
Aha! I've never used any of those links...until now. I opened all 5 skins and toggled light/dark modes, and they all look good & as-expected.   ~ Tom.Reding (talkdgaf)  14:33, 12 September 2024 (UTC)Reply
I have tweaked the dark mode colors using named colors from Web colors § Extended colors so that the dark mode colors are WCAG 2 AAA compliant (with the exception of |color=green which has a color difference that is slightly underspec at 496, should be >=500). Color evaluations were made using snook's color contrast checker (https://snook.ca/technical/colour_contrast/colour.html).
I also checked, but did not change, the <syntaxhighlight>...</syntaxhighlight> undark-mode colors. I did change the color for |color=green so that it would be WCAG 2 AAA compliant. More detail in Template:Para/styles.css.
WCAG 2 AAA is the strictest compliance specification. According to Wikipedia:Manual of Style/Accessibility § Color, we can fallback to en.wiki's minimum requirement of WCAG 2 AA if we decide to do that.
Trappist the monk (talk) 17:02, 12 September 2024 (UTC)Reply
I experimented with going back to using the same classes as <syntaxhighlight>...</syntaxhighlight> but that just broke <syntaxhighlight>...</syntaxhighlight> rendering in dark mode. Perhaps when <syntaxhighlight>...</syntaxhighlight> is made to be compatible with dark mode...
Trappist the monk (talk) 21:42, 13 September 2024 (UTC)Reply