MediaWiki:Gadget-ondemand-autoColumns.js
Арахьара хатӀ
Билгалдаккхар: Ӏалашйинчул тӀаьхьа браузеран кеш дӀайаккха йезаш хила мега, хийцамаш ган.
- Firefox / Safari: ГӀирсийн панелехь Shift-дӀа а лаьцна Керладаккхар тӀетаӀайе, йа Ctrl+F5 йаCtrl+R (Mac-хь ⌘+R) тӀетаӀайе.
- Google Chrome:Ctrl+Shift+R тӀетаӀайе (⌘+Shift+R Mac тӀехь)
- Edge: Ctrl дӀа а лаьцна, Refresh тӀе Ӏоттало йа Ctrl+F5 тӀе Ӏоттало.
- Opera: Ctrl+F5 тӀетаӀайе.
/**
* Авторазбиение списков на колонки. Будет работать только для однострочных списков. 35em
* (из [[Mediawiki:Common.css]]) является предварительным числом, а фактическое будет посчитано исходя
* из ширины элементов. Должно использоваться только для UL внутри DIV. Пример использования —
* шаблон {{Wikidata/SisterCities}}.
*
* Вынесено из [[MediaWiki:Common.js]] @ 2024-03-27
*/
mw.hook( 'wikipage.content' ).add( ( $content ) => {
$content.find( "div.autocolumns" ).each(function(d, div) {
var parentWidth = $(div).parent()[0].offsetWidth;
if (!parentWidth) return;
var maxWidth = 0;
var elements = 0;
$(div).find("ul>li").each(function(l, li) {
elements++;
var jLi = $(li);
if (jLi.children().length != jLi.contents().length)
jLi.wrapInner(document.createElement("span"));
var liWidth = 0;
jLi.children().each(function(c, child) {
liWidth += child.offsetWidth;
});
if (liWidth > maxWidth)
maxWidth = liWidth;
});
if ( maxWidth === 0 ) return;
// UL/LI bullet width + padding
maxWidth += 22.5 * 2;
var maxColumns = "" + Math.ceil( elements / 5 );
$(div).css({"columns" : maxWidth + "px " + maxColumns});
} );
} );