Changes for page Get Started

Last modified by Veronika Kocher on Friday, 04 Sep 2026 15:32

From version 5.1
edited by Veronika Kocher
on Monday, 31 Aug 2026 14:02
Change comment: There is no comment for this version
To version 8.4
edited by Veronika Kocher
on Thursday, 03 Sep 2026 9:18
Change comment: There is no comment for this version

Summary

Details

Page properties
Default language
... ... @@ -1,0 +1,1 @@
1 +en
Content
... ... @@ -434,3 +434,238 @@
434 434  
435 435  </div>
436 436  {{/html}}
437 +
438 +{{html clean="false"}}
439 +<!-- SN_HORIZONTAL_BOX_HARMONIZER_START -->
440 +<style data-sn-horizontal-box-harmonizer="1">
441 +[data-sn-equal-height-managed="1"]{box-sizing:border-box}
442 +@media(max-width:767px){
443 + [data-sn-equal-height-managed="1"]{min-height:0!important}
444 +}
445 +</style>
446 +<script data-sn-horizontal-box-harmonizer="1">
447 +(function(){
448 + "use strict";
449 +
450 + var MOBILE_MAX=767;
451 + var ROW_TOLERANCE=4;
452 + var MIN_W=150;
453 + var MIN_H=36;
454 +
455 + var root=
456 + document.getElementById("xwikicontent")||
457 + document.querySelector(".xwiki-rendering-content")||
458 + document.querySelector("main")||
459 + document.body;
460 +
461 + if(!root)return;
462 +
463 + var managed=new Set();
464 + var raf=0;
465 +
466 + function num(v){
467 + var n=parseFloat(v);
468 + return Number.isFinite(n)?n:0;
469 + }
470 +
471 + function visible(el){
472 + if(!el||el.nodeType!==1)return false;
473 + var s=getComputedStyle(el);
474 + if(s.display==="none"||s.visibility==="hidden"||Number(s.opacity)===0)return false;
475 + var r=el.getBoundingClientRect();
476 + return r.width>=MIN_W&&r.height>=MIN_H;
477 + }
478 +
479 + function excluded(el){
480 + return !el.matches||el.matches(
481 + "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]"
482 + );
483 + }
484 +
485 + function namedLikeBox(el){
486 + var c=typeof el.className==="string"?el.className:"";
487 + return /(^|[\s_-])(box|card|tile|panel|role|check|service|source|call|area|detail|resource|topic|warn|info)([\s_-]|$)/i.test(c);
488 + }
489 +
490 + function boxLike(el){
491 + if(!visible(el)||excluded(el))return false;
492 + var s=getComputedStyle(el);
493 + var r=el.getBoundingClientRect();
494 + var border=
495 + num(s.borderTopWidth)+num(s.borderRightWidth)+
496 + num(s.borderBottomWidth)+num(s.borderLeftWidth);
497 + var radius=Math.max(
498 + num(s.borderTopLeftRadius),num(s.borderTopRightRadius),
499 + num(s.borderBottomLeftRadius),num(s.borderBottomRightRadius)
500 + );
501 + var bg=s.backgroundColor&&s.backgroundColor!=="rgba(0, 0, 0, 0)"&&s.backgroundColor!=="transparent";
502 + var shadow=s.boxShadow&&s.boxShadow!=="none";
503 + return namedLikeBox(el)||border>=1||(bg&&radius>=3)||(shadow&&r.width>=180);
504 + }
505 +
506 + function pickTarget(child){
507 + if(!visible(child))return null;
508 + if(boxLike(child))return child;
509 +
510 + var cr=child.getBoundingClientRect();
511 + var q=[];
512 + Array.from(child.children||[]).forEach(function(el){
513 + q.push({el:el,depth:1});
514 + });
515 +
516 + var best=null,bestScore=-1;
517 +
518 + while(q.length){
519 + var item=q.shift();
520 + var el=item.el;
521 + if(!visible(el))continue;
522 +
523 + var r=el.getBoundingClientRect();
524 +
525 + if(r.width>=cr.width*.72&&boxLike(el)){
526 + var widthFit=1-Math.min(1,Math.abs(cr.width-r.width)/Math.max(1,cr.width));
527 + var topFit=1-Math.min(1,Math.abs(cr.top-r.top)/80);
528 + var score=widthFit*5+topFit*2+Math.min(r.height,600)/600;
529 + if(score>bestScore){
530 + best=el;
531 + bestScore=score;
532 + }
533 + }
534 +
535 + if(item.depth<3){
536 + Array.from(el.children||[]).forEach(function(next){
537 + q.push({el:next,depth:item.depth+1});
538 + });
539 + }
540 + }
541 +
542 + return best;
543 + }
544 +
545 + function reset(){
546 + managed.forEach(function(el){
547 + el.style.removeProperty("min-height");
548 + el.removeAttribute("data-sn-equal-height-managed");
549 + });
550 + managed.clear();
551 + }
552 +
553 + function horizontalLayout(parent){
554 + if(!visible(parent))return false;
555 + var s=getComputedStyle(parent);
556 + if(s.display==="grid"||s.display==="inline-grid")return true;
557 + if(s.display==="flex"||s.display==="inline-flex"){
558 + return s.flexDirection==="row"||s.flexDirection==="row-reverse";
559 + }
560 + return false;
561 + }
562 +
563 + function rowGroups(entries){
564 + var groups=[];
565 + entries.slice().sort(function(a,b){
566 + return a.rect.top-b.rect.top||a.rect.left-b.rect.left;
567 + }).forEach(function(entry){
568 + var group=null;
569 + for(var i=0;i<groups.length;i++){
570 + if(Math.abs(groups[i].top-entry.rect.top)<=ROW_TOLERANCE){
571 + group=groups[i];
572 + break;
573 + }
574 + }
575 + if(!group){
576 + group={top:entry.rect.top,entries:[]};
577 + groups.push(group);
578 + }
579 + group.entries.push(entry);
580 + });
581 + return groups;
582 + }
583 +
584 + function run(){
585 + reset();
586 +
587 + if(window.innerWidth<=MOBILE_MAX)return;
588 +
589 + var parents=Array.from(root.querySelectorAll("*")).filter(function(el){
590 + return el.children&&el.children.length>=2&&horizontalLayout(el);
591 + });
592 +
593 + parents.forEach(function(parent){
594 + var entries=[];
595 +
596 + Array.from(parent.children).forEach(function(child){
597 + if(!visible(child))return;
598 + var target=pickTarget(child);
599 + if(!target)return;
600 + entries.push({
601 + target:target,
602 + rect:target.getBoundingClientRect()
603 + });
604 + });
605 +
606 + if(entries.length<2)return;
607 +
608 + rowGroups(entries).forEach(function(group){
609 + if(group.entries.length<2)return;
610 +
611 + var lefts=group.entries.map(function(e){return e.rect.left;}).sort(function(a,b){return a-b;});
612 + if(lefts[lefts.length-1]-lefts[0]<80)return;
613 +
614 + var targets=[];
615 + var seen=new Set();
616 +
617 + group.entries.forEach(function(e){
618 + if(!seen.has(e.target)){
619 + seen.add(e.target);
620 + targets.push(e.target);
621 + }
622 + });
623 +
624 + if(targets.length<2)return;
625 +
626 + var max=0;
627 + targets.forEach(function(el){
628 + max=Math.max(max,el.getBoundingClientRect().height);
629 + });
630 +
631 + max=Math.ceil(max);
632 + if(max<MIN_H)return;
633 +
634 + targets.forEach(function(el){
635 + el.style.setProperty("min-height",max+"px");
636 + el.setAttribute("data-sn-equal-height-managed","1");
637 + managed.add(el);
638 + });
639 + });
640 + });
641 + }
642 +
643 + function schedule(){
644 + if(raf)cancelAnimationFrame(raf);
645 + raf=requestAnimationFrame(function(){
646 + raf=requestAnimationFrame(function(){
647 + raf=0;
648 + run();
649 + });
650 + });
651 + }
652 +
653 + addEventListener("resize",schedule,{passive:true});
654 + addEventListener("load",schedule,{once:true});
655 +
656 + root.addEventListener("click",function(){
657 + setTimeout(schedule,0);
658 + },true);
659 +
660 + if(document.fonts&&document.fonts.ready){
661 + document.fonts.ready.then(schedule);
662 + }
663 +
664 + schedule();
665 + setTimeout(schedule,250);
666 + setTimeout(schedule,900);
667 +})();
668 +</script>
669 +<!-- SN_HORIZONTAL_BOX_HARMONIZER_END -->
670 +{{/html}}
671 +