vole
Clone
Read only, no credentials:
https://rodent.software/vole.git
Write over SSH with a registered key:
git clone ssh://git@rodent.software:2222/vole.git
A free and open-source forge that lives in your Git repo.
Add Catppuccin, Nord, and Solarized as built-in themes
0584bb700c0b144752ddc29764d697551234f862 · Keenan Nemetz · 1d ago · parent c980fe53
Add Catppuccin, Nord, and Solarized as built-in themes Ship four more Appearance choices: Catppuccin Mocha, Catppuccin Latte, Nord, and Solarized Light. Each is a token block in static/palettes.css, scoped to its data-theme value and loaded after Everforest, before instance theme packs and profile/custom.css. The ids join theme.js's allowlist and the account picker, and the instance repository's reserved-name check now covers nord and the catppuccin-/solarized- prefixes so a theme pack cannot shadow a built-in. NOTICE and three MIT license files record the palettes.
forge/instancerepo/instancerepo.go +5−2
| @@ -296,8 +296,11 @@ func validThemeID(id string) error { | |||
| 296 | 296 | if !themeIDRE.MatchString(id) { | |
| 297 | 297 | return fmt.Errorf("%s%s.css: theme id must use lowercase letters, digits, and dashes (max 41 characters)", ThemesDir, id) | |
| 298 | 298 | } | |
| 299 | if id == "system" || strings.HasPrefix(id, "everforest-") { | ||
| 300 | return fmt.Errorf("%s%s.css: theme id %q is reserved", ThemesDir, id, id) | ||
| 299 | if id == "system" || id == "nord" || | ||
| 300 | strings.HasPrefix(id, "everforest-") || | ||
| 301 | strings.HasPrefix(id, "catppuccin-") || | ||
| 302 | strings.HasPrefix(id, "solarized-") { | ||
| 303 | return fmt.Errorf("%s%s.css: theme id %q is reserved for a built-in theme", ThemesDir, id, id) | ||
| 301 | 304 | } | |
| 302 | 305 | return nil | |
| 303 | 306 | } | |