Template talk:Pre

templates functions
This template will render its first parameter as if in  tags, with the difference that Wikimarkup is allowed, line-breaks occur, and overflow is tempered. Note: the allowance of Wikimarkup is accidental and currently incurable; parameters should be manually 'd if needed.

The point of this template is to avoid nasty errors that occur when the contents of a  tag are too large, and force the tag to expand the page or push other elements away awkwardly.

Examples
This is some text.

This is some text in pre tags

This is some text using this template

This is rather a lot of text that just keeps on going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going!

Using template:

This is rather a lot of text that just keeps on going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going!

What would this look like in PRE tags?

If you want white-space displayed as in  tags, you can use the argument , which you should set to  :

This is rather a lot of text that just keeps on going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going and going!

Note that this template cannot display multiple spaces; for this, genuine  tags must be used.

Therejustaren'tanyspacesinthistextanditsgonnapushthepageapartnastilyohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdear.

Therejustaren'tanyspacesinthistextanditsgonnapushthepageapartnastilyohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdearohdear.

What would this look like in PRE tags?

Making all pres autoflow
Just add this to your user CSS:

/* Make preformatted sections overflow with a scrollbar instead of uglies */

pre { overflow: auto; width: auto; } — Omegatron 01:13, 16 May 2006 (UTC)

Maybe usurp the name Template:Pre?
I wonder whether it would be particularly bad if the name Template:Pre was usurped by the current Template:Pre2?

Pre2 generates s, but with wrapped text, or a scrollbox, depending on the settings/parameters. It's quite new, but it would be easier to remember if it only had the name. The reason I like it is that I use the modern skin, and so Pre, as it is at the moment, shows  differently to normal. It's still a very useful template though, well done on making it! I'm wondering if it could be moved to a different name?

All comments very much appreciated; thanks, Drum guy (talk) 23:16, 13 June 2008 (UTC)


 * I've imported Pre2 in my wiki ( http://neurov.is/on ), since it seemed cleaner at first glance than Pre. Thanks for creating it!  I prefer Pre2 and I think it would be worthwhile to consider replacing Pre with it, but I don't know enough about the two to really recommend doing so.  Would there be any backwards compatibility issues? JonathanWilliford (talk) 14:05, 13 August 2009 (UTC)

Double border
A recent change to the styling of the  element means that this template no longer does what it claims to do: This Pre-format

can look

like this. is not at all similar to This Pre-format

can look

like this. See related post at MediaWiki talk:Common.css. -- Red rose64 (talk) 09:16, 1 August 2014 (UTC)
 * Why is this template using in the first place? That is an inline tag.   10:15, 1 August 2014 (UTC)
 * Then why ? That's also an inline element. -- Red rose64 (talk) 13:51, 1 August 2014 (UTC)
 * There are several elements in HTML5 that we might expect a browser to render as mono-spaced, but which have different semantic meanings. The relevant document is http://www.w3.org/TR/html5/text-level-semantics.html and it defines: as "a fragment of computer code";  as "user input"; and  as "(sample) output from a program". Semantically, you can't determine the correct tag here as it would depend on the content supplied to the template. I'd have thought that a container with its font-family set to monospace would be the general solution here. --RexxS (talk) 14:42, 1 August 2014 (UTC)
 * I tried, but that disables all template code inside. Any way around that?  15:12, 1 August 2014 (UTC)
 * It looks like the  is only being used to supply the monospaced font. In the, I've removed the  and applied  to the container. Looking at Template:Pre/testcases, it seems to do the job. See what you think? --RexxS (talk) 15:54, 1 August 2014 (UTC)
 * I want to use so all the inline styling can be removed.   16:15, 1 August 2014 (UTC)
 * I stole a trick from pre2, now it looks much better.  16:29, 1 August 2014 (UTC)
 * Yesss... what does the empty  do? -- Red rose64 (talk) 16:47, 1 August 2014 (UTC)
 * Apparently, it prevents the pre tag from kicking in (and disabling all the template code) before being transcluded.  18:10, 1 August 2014 (UTC)