Add HTML attributes lang and dir to toctitle

The toctitle is in user interface language. This change add the
HTML attributes lang and dir to the toctitle.

This allows to copy (a part of) the rendered HTML to a word processing
and the language for spell checking has the right language.

Change-Id: I17730869f81744560672d7d0acb67ced71e69c4e
This commit is contained in:
Fomafix 2015-05-29 17:07:55 +00:00
parent 2e94e4d790
commit 65b888a520
3 changed files with 39 additions and 34 deletions

View file

@ -1595,7 +1595,12 @@ class Linker {
$title = wfMessage( 'toc' )->inLanguage( $lang )->escaped();
return '<div id="toc" class="toc">'
. '<div class="toctitle"><h2>' . $title . "</h2></div>\n"
. Html::openElement( 'div', [
'class' => 'toctitle',
'lang' => $lang->getHtmlCode(),
'dir' => $lang->getDir(),
] )
. '<h2>' . $title . "</h2></div>\n"
. $toc
. "</ul>\n</div>\n";
}

View file

@ -16578,7 +16578,7 @@ Section headings with TOC
Some text
===Another headline===
!! html
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Headline_1"><span class="tocnumber">1</span> <span class="toctext">Headline 1</span></a>
<ul>
@ -16621,7 +16621,7 @@ __FORCETOC__
== Headline 2 ==
== Headline ==
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Headline_2"><span class="tocnumber">1</span> <span class="toctext">Headline 2</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#Headline"><span class="tocnumber">2</span> <span class="toctext">Headline</span></a></li>
@ -16655,7 +16655,7 @@ parsoid=wt2html
========= Level 9 Heading=========
========== Level 10 Heading==========
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Level_1_Heading"><span class="tocnumber">1</span> <span class="toctext">Level 1 Heading</span></a>
<ul>
@ -16719,7 +16719,7 @@ TOC regression (T11764)
== title 2 ==
=== title 2.1 ===
!! html
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#title_1"><span class="tocnumber">1</span> <span class="toctext">title 1</span></a>
<ul>
@ -16754,7 +16754,7 @@ TOC for heading containing <span id="..."></span> (T96153)
__FORCETOC__
==<span id="old-anchor"></span>New title==
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#New_title"><span class="tocnumber">1</span> <span class="toctext">New title</span></a></li>
</ul>
@ -16776,7 +16776,7 @@ wgMaxTocLevel=3
== title 2 ==
=== title 2.1 ===
!! html
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#title_1"><span class="tocnumber">1</span> <span class="toctext">title 1</span></a>
<ul>
@ -16812,7 +16812,7 @@ wgMaxTocLevel=3
====Section 1.1.1.1====
==Section 2==
!! html
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Section_1"><span class="tocnumber">1</span> <span class="toctext">Section 1</span></a>
<ul>
@ -16905,7 +16905,7 @@ __TOC__
=== title 1.1 ===
== title 2 ==
!! html
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#title_1"><span class="tocnumber">1</span> <span class="toctext">title 1</span></a>
<ul>
@ -16981,7 +16981,7 @@ section 5
!! html/php
<p>The tooltips shall not show entities to the user (ie. be double escaped)
</p>
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#text_.3E_text"><span class="tocnumber">1</span> <span class="toctext">text &gt; text</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#text_.3C_text"><span class="tocnumber">2</span> <span class="toctext">text &lt; text</span></a></li>
@ -17057,7 +17057,7 @@ section 6
!! html/php
<p>Id should not contain + for spaces
</p>
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Space_between_Text"><span class="tocnumber">1</span> <span class="toctext">Space between Text</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#Space-Entity_between_Text"><span class="tocnumber">2</span> <span class="toctext">Space-Entity&#32;between&#32;Text</span></a></li>
@ -17133,7 +17133,7 @@ parsoid=wt2html,wt2wt,html2html
=''italic'' heading==
==''italic'' heading=
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#foo.3D"><span class="tocnumber">1</span> <span class="toctext">foo=</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#.3Dfoo"><span class="tocnumber">2</span> <span class="toctext">=foo</span></a></li>
@ -17168,7 +17168,7 @@ HTML headers vs TOC (T25393)
== Header 2.2 ==
__NOEDITSECTION__
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1"><a href="#Header_1"><span class="tocnumber">1</span> <span class="toctext">Header 1</span></a>
<ul>
@ -19081,7 +19081,7 @@ Fuzz testing: Parser14
http://__TOC__
!! html/php
<h2><span class="mw-headline" id="onmouseover.3D">onmouseover=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: onmouseover=">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
http://<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
http://<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#onmouseover.3D"><span class="tocnumber">1</span> <span class="toctext">onmouseover=</span></a></li>
</ul>
@ -19092,7 +19092,7 @@ http://<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<h2><span class="mw-headline" id="onmouseover.3D">onmouseover=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: onmouseover=">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
<p>http://</p>
<div id="toc" class="toc">
<div class="toctitle">
<div class="toctitle" lang="en" dir="ltr" xml:lang="en">
<h2>Contents</h2>
</div>
<ul>
@ -21608,7 +21608,7 @@ Out-of-order TOC heading levels
=====5=====
==2==
!! html
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#2"><span class="tocnumber">1</span> <span class="toctext">2</span></a>
<ul>
@ -24242,7 +24242,7 @@ title=[[Main Page]]
__TOC__
== ''Lost'' episodes ==
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Lost_episodes"><span class="tocnumber">1</span> <span class="toctext"><i>Lost</i> episodes</span></a></li>
</ul>
@ -24263,7 +24263,7 @@ title=[[Main Page]]
__TOC__
== '''should be bold''' then normal text ==
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#should_be_bold_then_normal_text"><span class="tocnumber">1</span> <span class="toctext"><b>should be bold</b> then normal text</span></a></li>
</ul>
@ -24284,7 +24284,7 @@ title=[[Main Page]]
__TOC__
== Image [[Image:foobar.jpg]] ==
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Image"><span class="tocnumber">1</span> <span class="toctext">Image</span></a></li>
</ul>
@ -24305,7 +24305,7 @@ title=[[Main Page]]
__TOC__
== <blockquote>Quote</blockquote> ==
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Quote"><span class="tocnumber">1</span> <span class="toctext">Quote</span></a></li>
</ul>
@ -24316,7 +24316,7 @@ __TOC__
!! html/php+tidy
<p></p>
<div id="toc" class="toc">
<div class="toctitle">
<div class="toctitle" lang="en" dir="ltr" xml:lang="en">
<h2>Contents</h2>
</div>
<ul>
@ -24346,7 +24346,7 @@ __TOC__
<small>Hanc marginis exiguitas non caperet.</small>
QED
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Proof:_2_&lt;_3"><span class="tocnumber">1</span> <span class="toctext">Proof: 2 &lt; 3</span></a></li>
</ul>
@ -24371,7 +24371,7 @@ __TOC__
== <i>Foo</i> <blockquote>Bar</blockquote> ==
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Foo_Bar"><span class="tocnumber">1</span> <span class="toctext"><i>Foo</i> <b>Bar</b></span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#Foo_Bar_2"><span class="tocnumber">2</span> <span class="toctext"><i>Foo</i> Bar</span></a></li>
@ -24384,7 +24384,7 @@ __TOC__
!! html/php+tidy
<p></p>
<div id="toc" class="toc">
<div class="toctitle">
<div class="toctitle" lang="en" dir="ltr" xml:lang="en">
<h2>Contents</h2>
</div>
<ul>
@ -24418,7 +24418,7 @@ __TOC__
== <sup class="a > b">Evilbye</sup> ==
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Hello"><span class="tocnumber">1</span> <span class="toctext"><sup>Hello</sup></span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#b.22.3EEvilbye"><span class="tocnumber">2</span> <span class="toctext"><sup> b"&gt;Evilbye</sup></span></a></li>
@ -24449,7 +24449,7 @@ __TOC__
== <span dir="ltr" style="font-style: italic">Attributes after dir on these span tags must be deleted from the TOC</span> ==
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#C.2B.2B"><span class="tocnumber">1</span> <span class="toctext"><span dir="ltr">C++</span></span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#.D7.96.D7.91.D7.A0.D7.92.21"><span class="tocnumber">2</span> <span class="toctext"><span dir="rtl">זבנג!</span></span></a></li>
@ -24480,7 +24480,7 @@ T74884: bdi element in ToC
__TOC__
== <bdi>test</bdi> ==
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#test"><span class="tocnumber">1</span> <span class="toctext"><bdi>test</bdi></span></a></li>
</ul>
@ -24499,7 +24499,7 @@ T35715: s/strike element in ToC
__TOC__
== <s>test</s> test <strike>test</strike> ==
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#test_test_test"><span class="tocnumber">1</span> <span class="toctext"><s>test</s> test <strike>test</strike></span></a></li>
</ul>
@ -24521,7 +24521,7 @@ Empty <p> tag in TOC, removed by Sanitizer (T92892)
__TOC__
== x ==
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#x"><span class="tocnumber">1</span> <span class="toctext">x</span></a></li>
</ul>
@ -24532,7 +24532,7 @@ __TOC__
!! html/php+tidy
<p></p>
<div id="toc" class="toc">
<div class="toctitle">
<div class="toctitle" lang="en" dir="ltr" xml:lang="en">
<h2>Contents</h2>
</div>
<ul>
@ -29955,7 +29955,7 @@ wgFragmentMode=[ 'html5', 'legacy' ]
[[#啤酒]] [[#%E5%95%A4%E9%85%92]]
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Foo_bar"><span class="tocnumber">1</span> <span class="toctext">Foo bar</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#foo_Bar_2"><span class="tocnumber">2</span> <span class="toctext">foo Bar</span></a></li>
@ -30021,7 +30021,7 @@ wgFragmentMode=[ 'legacy', 'html5' ]
[[#啤酒]] [[#%E5%95%A4%E9%85%92]]
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Foo_bar"><span class="tocnumber">1</span> <span class="toctext">Foo bar</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#foo_Bar_2"><span class="tocnumber">2</span> <span class="toctext">foo Bar</span></a></li>
@ -30069,7 +30069,7 @@ wgFragmentMode=[ 'html5' ]
[[#啤酒]] [[#%E5%95%A4%E9%85%92]]
!! html/php
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Foo_bar"><span class="tocnumber">1</span> <span class="toctext">Foo bar</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#foo_Bar_2"><span class="tocnumber">2</span> <span class="toctext">foo Bar</span></a></li>

View file

@ -12,7 +12,7 @@
assert.strictEqual( $( '.toc' ).length, 0, 'There is no table of contents on the page at the beginning' );
tocHtml = '<div id="toc" class="toc">' +
'<div class="toctitle">' +
'<div class="toctitle" lang="en" dir="ltr">' +
'<h2>Contents</h2>' +
'</div>' +
'<ul><li></li></ul>' +