MediaWiki:Gadget-article-columns.js

Z Wikinews, wolnego źródła informacji.

Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.

  • Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
  • Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
  • Internet Explorer / Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5
  • Opera: Naciśnij klawisze Ctrl+F5.
// Gadżet do obsługi dwukolumnowego układu artykułów
// Przenosi element '.wn-article-sidebar' poza obszar głównej treści artykułu
// aby zastosować odpowiednie style dla układu treści
// Autor: [[Wikireporter:Msz2001]]
(function () {
    var moveSidebar = function () {
    	// Nie uruchamiaj na stronach diffów, żeby nie psuć układu
    	var diff_new_id = mw.config.get('wgDiffNewId');
    	if(diff_new_id !== null) return;
    	
        var sidebar = document.getElementById('article-sidebar');
        if(!sidebar) return;
        var parent = sidebar.parentElement;

        // Pętla przechodzi w górę drzewa dokumentu
        while(parent){
            // Oznacza element z zawartością odpowiednią klasą
            if(parent.classList.contains('mw-parser-output')){
                parent.classList.add('wn-article-content');
            }

            // Przenieś panel boczny kilka poziomów wyżej w drzewie DOM
            // .mw-content-* istnieje w widoku "Czytaj" oraz "Edytuj"
            if(parent.classList.contains('mw-content-ltr')
                || parent.classList.contains('mw-content-rtl')) {
                var columnsRoot = parent.parentElement;
                columnsRoot.appendChild(sidebar);
                columnsRoot.classList.add('wn-article-columns-root');
                sidebar.classList.remove('no-gadget');
                break;
            }
            parent = parent.parentElement;
        }
    }

    if(document.readyState != 'loading') moveSidebar();
    else{
        document.addEventListener('DOMContentLoaded', moveSidebar, false);
    }
})();