MediaWiki:Common.js: Difference between revisions
No edit summary |
No edit summary |
||
| Line 95: | Line 95: | ||
'य':'ய','र':'ர','ल':'ல','ळ':'ழ','व':'வ', | 'य':'ய','र':'ர','ल':'ல','ळ':'ழ','व':'வ', | ||
'श':'ஶ','ष':'ஷ','स':'ஸ','ह':'ஹ', | 'श':'ஶ','ष':'ஷ','स':'ஸ','ह':'ஹ', | ||
'ा':'ா','ि':'ி','ी':'ீ',' | 'ा':'ா','ि':'ி','ी':'ீ','ु':'ு','ू':'ூ', | ||
'ृ':'ு','ॄ':'ூ', | 'ृ':'ு','ॄ':'ூ', | ||
'े':'ே','ை':'ை','ो':'ோ','ौ':'ௌ', | 'े':'ே','ை':'ை','ो':'ோ','ौ':'ௌ', | ||
| Line 185: | Line 185: | ||
var titleEl = toc.querySelector( '.vector-toc-title' ); | var titleEl = toc.querySelector( '.vector-toc-title' ); | ||
if ( !titleEl ) return; | if ( !titleEl ) return; | ||
var TITLE = 'विषयसूची'; | |||
var replaced = false; | var replaced = false; | ||
titleEl.childNodes.forEach( function ( n ) { | titleEl.childNodes.forEach( function ( n ) { | ||
if ( n.nodeType === 3 && n.textContent.trim() ) { | if ( n.nodeType === 3 && n.textContent.trim() ) { | ||
n.textContent = | n.textContent = TITLE; | ||
replaced = true; | replaced = true; | ||
} | } | ||
} ); | } ); | ||
if ( !replaced && titleEl.childElementCount === 0 ) { | if ( !replaced && titleEl.childElementCount === 0 ) { | ||
titleEl.textContent = | titleEl.textContent = TITLE; | ||
} | } | ||
// Fix up any <span data-deva> wrappers that tagTextNodes created | |||
// over "Contents" — update their data-deva to the new Sanskrit text | |||
titleEl.querySelectorAll( '[data-deva]' ).forEach( function ( span ) { | |||
span.setAttribute( 'data-deva', TITLE ); | |||
if ( currentScript !== 'deva' ) { | |||
span.textContent = transliterateText( TITLE, currentScript ); | |||
} else { | |||
span.textContent = TITLE; | |||
} | |||
} ); | |||
} | } | ||
| Line 202: | Line 213: | ||
var toc = document.querySelector( '.vector-toc' ); | var toc = document.querySelector( '.vector-toc' ); | ||
if ( !toc ) return; | if ( !toc ) return; | ||
// Try the dedicated id first (Vector 2022) | |||
var el = toc.querySelector( '#vector-toc-beginning' ); | var el = toc.querySelector( '#vector-toc-beginning' ); | ||
if ( !el ) { | if ( !el ) { | ||
// Fallback: first list-item whose link has no # anchor = the "Beginning" entry | |||
var items = toc.querySelectorAll( '.vector-toc-list-item' ); | var items = toc.querySelectorAll( '.vector-toc-list-item' ); | ||
for ( var i = 0; i < items.length; i++ ) { | for ( var i = 0; i < items.length; i++ ) { | ||
var a = items[ i ].querySelector( 'a' ); | var a = items[ i ].querySelector( 'a' ); | ||
if ( a | if ( a ) { | ||
var href = a.getAttribute( 'href' ) || ''; | |||
if ( href.indexOf( '#' ) === -1 ) { el = items[ i ]; break; } | |||
} | |||
} | } | ||
} | } | ||
| Line 513: | Line 529: | ||
var script = e && e.detail && e.detail.script; | var script = e && e.detail && e.detail.script; | ||
if ( script ) applyScript( script ); | if ( script ) applyScript( script ); | ||
} ); | |||
// ── React to gr-new-content (siteNav panel rendered new items) ── | |||
// Tag any new text nodes added by the documents panel | |||
window.addEventListener( 'gr-new-content', function ( e ) { | |||
var container = e && e.detail && e.detail.container; | |||
if ( !container ) return; | |||
var walker = document.createTreeWalker( container, NodeFilter.SHOW_TEXT ); | |||
var nodes = []; | |||
while ( walker.nextNode() ) nodes.push( walker.currentNode ); | |||
nodes.forEach( function ( node ) { | |||
var p = node.parentNode; | |||
if ( !p || ( p.hasAttribute && p.hasAttribute( 'data-deva' ) ) ) return; | |||
var orig = node.textContent; | |||
if ( !orig.trim() ) return; | |||
var span = document.createElement( 'span' ); | |||
span.setAttribute( 'data-deva', orig ); | |||
span.textContent = currentScript !== 'deva' ? transliterateText( orig, currentScript ) : orig; | |||
p.replaceChild( span, node ); | |||
translatableSpans.push( span ); | |||
} ); | |||
} ); | } ); | ||