From 80586f1de32373fb48cc392066b7082d67b84e01 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Fri, 6 Dec 2024 14:22:54 -0800 Subject: [PATCH] feat: add line breaks for long x-axis labels in leaderboard chart --- aider/website/_includes/edit-leaderboard.js | 33 +++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/aider/website/_includes/edit-leaderboard.js b/aider/website/_includes/edit-leaderboard.js index 7aeaac769..c18e1b81a 100644 --- a/aider/website/_includes/edit-leaderboard.js +++ b/aider/website/_includes/edit-leaderboard.js @@ -66,6 +66,39 @@ document.addEventListener('DOMContentLoaded', function () { scales: { y: { beginAtZero: true + }, + x: { + ticks: { + callback: function(value, index) { + const label = this.getLabelForValue(value); + if (label.length <= "claude-3-5-sonnet".length) { + return label; + } + + // Find all possible split positions + const splitPositions = []; + for (let i = 0; i < label.length; i++) { + if (label[i] === '-' || label[i] === ' ') { + splitPositions.push(i); + } + } + + if (splitPositions.length === 0) { + return label; + } + + // Find split position closest to middle + const middle = label.length / 2; + const splitIndex = splitPositions.reduce((closest, current) => { + return Math.abs(current - middle) < Math.abs(closest - middle) ? current : closest; + }); + + return [ + label.slice(0, splitIndex), + label.slice(splitIndex + 1) + ]; + } + } } } }