Template:Blockquote paragraphs: Difference between revisions

m
52 revisions imported from wikipedia:Template:Blockquote_paragraphs
mNo edit summary
m (52 revisions imported from wikipedia:Template:Blockquote_paragraphs)
 
(29 intermediate revisions by 22 users not shown)
Line 1:
----
''(This section is transcluded from [[Template:Blockquote paragraphs]])''
<div style="float: right; padding: 0 1em;">{{navbar|Blockquote paragraphs|plain=y}}</div>
The {{code|lang=html|code=<blockquote>}} element and any templates that use it do not honor newlines:
Due to the utterly intractable [[MediaWiki]] bug reported at {{bugzilla|6200}}, and still unfixed {{as of|February 2012|lc=y}}, block quoting on Wikipedia, with or without a template, cannot handle freeform linebreaking for paragraphs and poems and the like, unless formatted one very specific (and annoying) way. It's not a problem of blockquote templates, but all uses of {{tag|blockquote|open}}.
{{markup
 
|<syntaxhighlight lang="html">
{{collapse top|left=y|title=The problem in action: test cases that seem like they should work but fail|bg=#EEEEEE|bg2=#ECFCF4}}<div class="collapse-workaround">
<blockquote>
The intuitive choice:
Line 1
 
<blockquote><code><nowiki>{{</nowiki><includeonly>{{BASEPAGENAME}}</includeonly><noinclude>bq</noinclude>|Line 1 <br />
Line 2 <br />
Line 3 <br />
Line 4}}</code></blockquote>
 
results in the mangled:
 
{{<includeonly>{{BASEPAGENAME}}</includeonly><noinclude>bq</noinclude>|Line 1
Line 2
Line 3
Line 4}}
</blockquote>
 
</syntaxhighlight>
Blank lines seem to work at first:
|<blockquote>
 
Line 1
<blockquote><code><nowiki>{{</nowiki><includeonly>{{BASEPAGENAME}}</includeonly><noinclude>bq</noinclude>|Line 1 <br />
<br />
Line 2 <br />
<br />
Line 3 <br />
<br />
Line 4}}</code></blockquote>
 
though with quite tall spacing between the content blocks (lines, in our test cases):
 
{{<includeonly>{{BASEPAGENAME}}</includeonly><noinclude>bq</noinclude>|Line 1
 
Line 2
 
Line 3
Line 4
</blockquote>
}}
 
An easy solution is to use the {{tl|poemquote}} template instead of {{xtag|blockquote}}. This is effectively the same as using the {{xtag|poem}} tag inside {{code|lang=html|code=<blockquote>}}, which converts line breaks to {{code|lang=html|code=<br />}} tags:
Line 4}}
{{markup
 
|<syntaxhighlight lang="html">
Yet this markup fails with wiki ":" citation:
<blockquote><poem>
 
Line 1
:{{<includeonly>{{BASEPAGENAME}}</includeonly><noinclude>bq</noinclude>|Line 1
 
Line 2
 
Line 3
Line 4
</poem></blockquote>
</syntaxhighlight>
|<blockquote><poem>
Line 1
Line 2
Line 3
Line 4
</poem></blockquote>
}}
 
To markup actual paragraphs within block quotations, entire blank lines can be used between them, which will convert to {{code|lang=html|code=<p>...</p>}} tags:
Line 4}}
 
Just trying to use {{tag|p}} or {{tag|br|single}} markup won't solve all the problems:
 
<blockquote><code><nowiki>{{</nowiki><includeonly>{{BASEPAGENAME}}</includeonly><noinclude>bq</noinclude>|Line 1 &lt;br/><br />
Line 2 &lt;br/><br />
Line 3 &lt;br/><br />
Line 4}}</code></blockquote>
 
results in odd spacing, with the middle blocks too close together:
 
{{<includeonly>{{BASEPAGENAME}}</includeonly><noinclude>bq</noinclude>|Line 1 <br />
Line 2 <br />
Line 3 <br />
Line 4}}
 
Meanwhile this version seems OK at first:
 
<blockquote><code><nowiki>{{</nowiki><includeonly>{{BASEPAGENAME}}</includeonly><noinclude>bq</noinclude>|&lt;p>Line 1&lt;/p><br />
&lt;p>Line 2&lt;/p><br />
&lt;p>Line 3&lt;/p><br />
&lt;p>Line 4&lt;/p>}}</code></blockquote>
 
{{<includeonly>{{BASEPAGENAME}}</includeonly><noinclude>bq</noinclude>|<p>Line 1</p>
<p>Line 2</p>
<p>Line 3</p>
<p>Line 4</p>}}
 
but again can't be indented in citation:
 
:{{<includeonly>{{BASEPAGENAME}}</includeonly><noinclude>bq</noinclude>|<p>Line 1</p>
<p>Line 2</p>
<p>Line 3</p>
<p>Line 4</p>}}
 
{{collapse bottom}}
 
{{As of|February 2012}}, the {{em|only}} solution for the problem is to use {{em|unbroken markup}} with {{tag|p}} or {{tag|br|single}} elements (or others, like nested blockquotes and lists):
 
:{{tnull|<includeonly>{{BASEPAGENAME}}</includeonly><noinclude>bq</noinclude>|Line 1 &lt;br/>Line 2 &lt;br/>Line 3 &lt;br/>Line 4.}}
 
which, while hard to read, especially for long content, results in the expected:
 
{{<includeonly>{{BASEPAGENAME}}</includeonly><noinclude>bq</noinclude>|Line 1 <br />Line 2 <br />Line 3 <br />Line 4.}}
 
And it {{em|does}} work with wikimarkup ":" citation, unlike the failed test cases hereinbefore:
 
:{{<includeonly>{{BASEPAGENAME}}</includeonly><noinclude>bq</noinclude>|Line 1 <br />Line 2 <br />Line 3 <br />Line 4.}}
 
Happily, there is a [[HTML]] comment workaround for readability that lets you do whatever you want:
 
<blockquote><code><nowiki>
{{</nowiki><includeonly>{{BASEPAGENAME}}</includeonly><noinclude>bq</noinclude>|1=&lt;!--<br />
-->Line 1 &lt;br/>&lt;!--<br />
-->Line 2 &lt;br/>&lt;!--<br />
-->Line 3 &lt;br/>&lt;!--<br />
-->Line 4.}}
</code></blockquote>
 
or even:
 
<blockquote><code><nowiki>
{{</nowiki><includeonly>{{BASEPAGENAME}}</includeonly><noinclude>bq</noinclude>|1=&lt;!--<br />
<br />
-->Line 1 &lt;br/>&lt;!--<br />
<br />
-->Line 2 &lt;br/>&lt;!--<br />
<br />
-->Line 3 &lt;br/>&lt;!--<br />
<br />
-->Line 4.}}
</code></blockquote>
 
which results in the expected:
 
{{<includeonly>{{BASEPAGENAME}}</includeonly><noinclude>bq</noinclude>|1=<!--
 
-->Line 1 <br /><!--
 
{{markup
-->Line 2 <br /><!--
|<syntaxhighlight lang="html">
<blockquote>
Paragraph 1
 
Paragraph 2
-->Line 3 <br /><!--
 
Paragraph 3
-->Line 4.}}
</blockquote>
</syntaxhighlight>
|<blockquote>
Paragraph 1
 
Paragraph 2
They {{em|are}} citable:
 
Paragraph 3
:{{<includeonly>{{BASEPAGENAME}}</includeonly><noinclude>bq</noinclude>|1=<!--
</blockquote>
-->Line 1 <br /><!--
}}
-->Line 2 <br /><!--
-->Line 3 <br /><!--
-->Line 4.}}<noinclude>
 
This paragraph style also works with {{tl|quote}}, which is a replacement for {{xtag|blockquote}} that also has parameters to make formatting of the attribution more conveniently and consistently.
----
{{Documentation}}
 
<!-- Categories and interwikis links go on the /doc subpage. -->
 
</noinclude>