Änderungen von Dokument Get Started

Zuletzt geändert von Veronika Kocher am Freitag, 04 Sep. 2026 14:45

Von Version 2.5
bearbeitet von Veronika Kocher
am Donnerstag, 03 Sep. 2026 9:18
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 2.4
bearbeitet von Veronika Kocher
am Mittwoch, 02 Sep. 2026 9:43
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -386,238 +386,3 @@
386 386   </div>
387 387  </div>
388 388  {{/html}}
389 -
390 -{{html clean="false"}}
391 -<!-- SN_HORIZONTAL_BOX_HARMONIZER_START -->
392 -<style data-sn-horizontal-box-harmonizer="1">
393 -[data-sn-equal-height-managed="1"]{box-sizing:border-box}
394 -@media(max-width:767px){
395 - [data-sn-equal-height-managed="1"]{min-height:0!important}
396 -}
397 -</style>
398 -<script data-sn-horizontal-box-harmonizer="1">
399 -(function(){
400 - "use strict";
401 -
402 - var MOBILE_MAX=767;
403 - var ROW_TOLERANCE=4;
404 - var MIN_W=150;
405 - var MIN_H=36;
406 -
407 - var root=
408 - document.getElementById("xwikicontent")||
409 - document.querySelector(".xwiki-rendering-content")||
410 - document.querySelector("main")||
411 - document.body;
412 -
413 - if(!root)return;
414 -
415 - var managed=new Set();
416 - var raf=0;
417 -
418 - function num(v){
419 - var n=parseFloat(v);
420 - return Number.isFinite(n)?n:0;
421 - }
422 -
423 - function visible(el){
424 - if(!el||el.nodeType!==1)return false;
425 - var s=getComputedStyle(el);
426 - if(s.display==="none"||s.visibility==="hidden"||Number(s.opacity)===0)return false;
427 - var r=el.getBoundingClientRect();
428 - return r.width>=MIN_W&&r.height>=MIN_H;
429 - }
430 -
431 - function excluded(el){
432 - return !el.matches||el.matches(
433 - "button,input,select,textarea,option,label,img,svg,canvas,table,thead,tbody,tfoot,tr,td,th,summary,script,style,noscript,template,.btn,.chip,[role=button]"
434 - );
435 - }
436 -
437 - function namedLikeBox(el){
438 - var c=typeof el.className==="string"?el.className:"";
439 - return /(^|[\s_-])(box|card|tile|panel|role|check|service|source|call|area|detail|resource|topic|warn|info)([\s_-]|$)/i.test(c);
440 - }
441 -
442 - function boxLike(el){
443 - if(!visible(el)||excluded(el))return false;
444 - var s=getComputedStyle(el);
445 - var r=el.getBoundingClientRect();
446 - var border=
447 - num(s.borderTopWidth)+num(s.borderRightWidth)+
448 - num(s.borderBottomWidth)+num(s.borderLeftWidth);
449 - var radius=Math.max(
450 - num(s.borderTopLeftRadius),num(s.borderTopRightRadius),
451 - num(s.borderBottomLeftRadius),num(s.borderBottomRightRadius)
452 - );
453 - var bg=s.backgroundColor&&s.backgroundColor!=="rgba(0, 0, 0, 0)"&&s.backgroundColor!=="transparent";
454 - var shadow=s.boxShadow&&s.boxShadow!=="none";
455 - return namedLikeBox(el)||border>=1||(bg&&radius>=3)||(shadow&&r.width>=180);
456 - }
457 -
458 - function pickTarget(child){
459 - if(!visible(child))return null;
460 - if(boxLike(child))return child;
461 -
462 - var cr=child.getBoundingClientRect();
463 - var q=[];
464 - Array.from(child.children||[]).forEach(function(el){
465 - q.push({el:el,depth:1});
466 - });
467 -
468 - var best=null,bestScore=-1;
469 -
470 - while(q.length){
471 - var item=q.shift();
472 - var el=item.el;
473 - if(!visible(el))continue;
474 -
475 - var r=el.getBoundingClientRect();
476 -
477 - if(r.width>=cr.width*.72&&boxLike(el)){
478 - var widthFit=1-Math.min(1,Math.abs(cr.width-r.width)/Math.max(1,cr.width));
479 - var topFit=1-Math.min(1,Math.abs(cr.top-r.top)/80);
480 - var score=widthFit*5+topFit*2+Math.min(r.height,600)/600;
481 - if(score>bestScore){
482 - best=el;
483 - bestScore=score;
484 - }
485 - }
486 -
487 - if(item.depth<3){
488 - Array.from(el.children||[]).forEach(function(next){
489 - q.push({el:next,depth:item.depth+1});
490 - });
491 - }
492 - }
493 -
494 - return best;
495 - }
496 -
497 - function reset(){
498 - managed.forEach(function(el){
499 - el.style.removeProperty("min-height");
500 - el.removeAttribute("data-sn-equal-height-managed");
501 - });
502 - managed.clear();
503 - }
504 -
505 - function horizontalLayout(parent){
506 - if(!visible(parent))return false;
507 - var s=getComputedStyle(parent);
508 - if(s.display==="grid"||s.display==="inline-grid")return true;
509 - if(s.display==="flex"||s.display==="inline-flex"){
510 - return s.flexDirection==="row"||s.flexDirection==="row-reverse";
511 - }
512 - return false;
513 - }
514 -
515 - function rowGroups(entries){
516 - var groups=[];
517 - entries.slice().sort(function(a,b){
518 - return a.rect.top-b.rect.top||a.rect.left-b.rect.left;
519 - }).forEach(function(entry){
520 - var group=null;
521 - for(var i=0;i<groups.length;i++){
522 - if(Math.abs(groups[i].top-entry.rect.top)<=ROW_TOLERANCE){
523 - group=groups[i];
524 - break;
525 - }
526 - }
527 - if(!group){
528 - group={top:entry.rect.top,entries:[]};
529 - groups.push(group);
530 - }
531 - group.entries.push(entry);
532 - });
533 - return groups;
534 - }
535 -
536 - function run(){
537 - reset();
538 -
539 - if(window.innerWidth<=MOBILE_MAX)return;
540 -
541 - var parents=Array.from(root.querySelectorAll("*")).filter(function(el){
542 - return el.children&&el.children.length>=2&&horizontalLayout(el);
543 - });
544 -
545 - parents.forEach(function(parent){
546 - var entries=[];
547 -
548 - Array.from(parent.children).forEach(function(child){
549 - if(!visible(child))return;
550 - var target=pickTarget(child);
551 - if(!target)return;
552 - entries.push({
553 - target:target,
554 - rect:target.getBoundingClientRect()
555 - });
556 - });
557 -
558 - if(entries.length<2)return;
559 -
560 - rowGroups(entries).forEach(function(group){
561 - if(group.entries.length<2)return;
562 -
563 - var lefts=group.entries.map(function(e){return e.rect.left;}).sort(function(a,b){return a-b;});
564 - if(lefts[lefts.length-1]-lefts[0]<80)return;
565 -
566 - var targets=[];
567 - var seen=new Set();
568 -
569 - group.entries.forEach(function(e){
570 - if(!seen.has(e.target)){
571 - seen.add(e.target);
572 - targets.push(e.target);
573 - }
574 - });
575 -
576 - if(targets.length<2)return;
577 -
578 - var max=0;
579 - targets.forEach(function(el){
580 - max=Math.max(max,el.getBoundingClientRect().height);
581 - });
582 -
583 - max=Math.ceil(max);
584 - if(max<MIN_H)return;
585 -
586 - targets.forEach(function(el){
587 - el.style.setProperty("min-height",max+"px");
588 - el.setAttribute("data-sn-equal-height-managed","1");
589 - managed.add(el);
590 - });
591 - });
592 - });
593 - }
594 -
595 - function schedule(){
596 - if(raf)cancelAnimationFrame(raf);
597 - raf=requestAnimationFrame(function(){
598 - raf=requestAnimationFrame(function(){
599 - raf=0;
600 - run();
601 - });
602 - });
603 - }
604 -
605 - addEventListener("resize",schedule,{passive:true});
606 - addEventListener("load",schedule,{once:true});
607 -
608 - root.addEventListener("click",function(){
609 - setTimeout(schedule,0);
610 - },true);
611 -
612 - if(document.fonts&&document.fonts.ready){
613 - document.fonts.ready.then(schedule);
614 - }
615 -
616 - schedule();
617 - setTimeout(schedule,250);
618 - setTimeout(schedule,900);
619 -})();
620 -</script>
621 -<!-- SN_HORIZONTAL_BOX_HARMONIZER_END -->
622 -{{/html}}
623 -