diff --git a/home/home.go b/home/home.go index ebc2fd75..9c9ea36c 100644 --- a/home/home.go +++ b/home/home.go @@ -75,7 +75,7 @@ var landingTemplate = `
Mu
The Micro Network

- The internet without the noise. + No ads, no algorithms, no tracking.

News, markets, video, search, and AI tools — all in one place. Build your own or let the agent build one for you. diff --git a/markets/markets.go b/markets/markets.go index a9b98aa9..4f1bb64d 100644 --- a/markets/markets.go +++ b/markets/markets.go @@ -255,24 +255,33 @@ func fetchCoinGeckoChanges() map[string]float64 { } func generateMarketsCardHTML(prices map[string]float64) string { - var sb strings.Builder - sb.WriteString(`

`) - allTickers := append([]string{}, tickers...) allTickers = append(allTickers, futuresKeys...) - sort.Slice(allTickers, func(i, j int) bool { - if len(allTickers[i]) != len(allTickers[j]) { - return len(allTickers[i]) < len(allTickers[j]) - } - return allTickers[i] < allTickers[j] - }) + sort.Strings(allTickers) - for _, ticker := range allTickers { - price := prices[ticker] - fmt.Fprintf(&sb, `
%s$%.2f
`, ticker, price) + // 4 rows x 2 columns table, show first 8 alphabetically + show := allTickers + if len(show) > 8 { + show = show[:8] } - sb.WriteString(`
`) + var sb strings.Builder + sb.WriteString(``) + for i := 0; i < len(show); i += 2 { + sb.WriteString(``) + for col := 0; col < 2; col++ { + idx := i + col + if idx < len(show) { + ticker := show[idx] + price := prices[ticker] + fmt.Fprintf(&sb, ``, ticker, price) + } else { + sb.WriteString(``) + } + } + sb.WriteString(``) + } + sb.WriteString(`
%s$%.2f
`) return sb.String() } diff --git a/markets/markets_test.go b/markets/markets_test.go index 18702c79..6890b9e8 100644 --- a/markets/markets_test.go +++ b/markets/markets_test.go @@ -120,8 +120,8 @@ func TestGenerateMarketsCardHTML(t *testing.T) { "GOLD": 2000, } html := generateMarketsCardHTML(prices) - if !strings.Contains(html, "market-grid") { - t.Error("expected market-grid class") + if !strings.Contains(html, "