Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions docs/.vitepress/stars.data.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// This file is auto-updated by xtasks/release-plz
// Current star count from GitHub API
export default {
load() {
return {
stars: "19.3k",
};
},
};
66 changes: 51 additions & 15 deletions docs/.vitepress/theme/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,52 @@
}
}

/* GitHub star count badge */
.VPSocialLinks a[href*="github.com/jdx/mise"] {
display: inline-flex !important;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 0;
position: relative;
padding-bottom: 12px !important;
margin-bottom: -12px !important;
Comment on lines +202 to +203
Copy link

Copilot AI Sep 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using negative margins with !important declarations can make the layout fragile and hard to maintain. Consider using a more stable positioning approach or specific flex layout properties to achieve the desired spacing.

Copilot uses AI. Check for mistakes.
}

/* Ensure GitHub icon is visible and aligned */
.VPSocialLinks a[href*="github.com/jdx/mise"] svg {
display: block !important;
width: 20px;
height: 20px;
margin-top: 2px;
}

.VPSocialLinks .star-count {
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
font-size: 0.6rem;
font-weight: 600;
color: var(--vp-c-text-3);
font-family: var(--vp-font-family-mono);
letter-spacing: -0.02em;
transition: color 0.25s ease;
white-space: nowrap;
line-height: 1;
}

.VPSocialLinks a[href*="github.com/jdx/mise"]:hover .star-count {
color: var(--vp-c-brand-1);
}

/* Hide star count on mobile to save space */
@media (max-width: 640px) {
.VPSocialLinks .star-count {
display: none;
}
}

/* Apply Bebas Neue to h1 headers, navigation, and key UI elements */
h1,
.vp-doc h1,
Expand Down Expand Up @@ -240,32 +286,22 @@ h1,
}

.VPHero .name {
background: linear-gradient(
120deg,
#00d9ff 0%,
#52e892 50%,
#ff9100 100%
);
background: linear-gradient(120deg, #00d9ff 0%, #52e892 50%, #ff9100 100%);
background-size: 200% 100%;
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
font-weight: 900;
letter-spacing: -0.02em;
font-size: 5rem !important;
font-size: 6rem !important;
line-height: 1.1 !important;
animation: shimmer 3s ease-in-out infinite;
filter: drop-shadow(0 0 20px rgba(0, 217, 255, 0.3));
}

/* Light mode hero gradient */
:root:not(.dark) .VPHero .name {
background: linear-gradient(
120deg,
#00acc1 0%,
#4caf50 50%,
#ff9800 100%
);
background: linear-gradient(120deg, #00acc1 0%, #4caf50 50%, #ff9800 100%);
background-size: 200% 100%;
-webkit-background-clip: text;
background-clip: text;
Expand Down Expand Up @@ -565,13 +601,13 @@ div[class*="language-"] .copy:hover {
/* Responsive improvements */
@media (max-width: 1024px) {
.VPHero .name {
font-size: 4rem !important;
font-size: 5rem !important;
}
}

@media (max-width: 768px) {
.VPHero .name {
font-size: 3.5rem !important;
font-size: 4rem !important;
}

.VPHero .tagline {
Expand Down
27 changes: 27 additions & 0 deletions docs/.vitepress/theme/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,37 @@ import DefaultTheme from "vitepress/theme";
import { enhanceAppWithTabs } from "vitepress-plugin-tabs/client";
import "virtual:group-icons.css";
import "./custom.css";
import { onMounted } from "vue";
import { data as starsData } from "../stars.data";

export default {
extends: DefaultTheme,
enhanceApp({ app }) {
enhanceAppWithTabs(app);
},
setup() {
onMounted(() => {
// Add star count to GitHub social link
const addStarCount = () => {
const githubLink = document.querySelector(
'.VPSocialLinks a[href*="github.com/jdx/mise"]',
);
if (githubLink && !githubLink.querySelector(".star-count")) {
const starBadge = document.createElement("span");
starBadge.className = "star-count";
starBadge.innerHTML = starsData.stars;
starBadge.title = "GitHub Stars";
githubLink.appendChild(starBadge);
}
};

// Try immediately and after a short delay to ensure DOM is ready
addStarCount();
setTimeout(addStarCount, 100);

// Also watch for route changes
const observer = new MutationObserver(addStarCount);
observer.observe(document.body, { childList: true, subtree: true });
Comment on lines +35 to +36
Copy link

Copilot AI Sep 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The MutationObserver is never disconnected, which could cause memory leaks. Consider storing the observer reference and disconnecting it when the component unmounts or use more specific observation targets to reduce overhead.

Copilot uses AI. Check for mistakes.
});
},
} satisfies Theme;
28 changes: 28 additions & 0 deletions xtasks/release-plz
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,33 @@ sed -i.bak "s/^[0-9]\+\.[0-9]\+\.[0-9]\+\(-rc\.[0-9]\+\)\? macos-arm64 (a1b2d3e
sed -i.bak "s/^Version: [0-9]\+\.[0-9]\+\.[0-9]\+\(-rc\.[0-9]\+\)\?$/Version: $version/" packaging/rpm/mise.spec
sed -i.bak "s/version = \"[0-9]\+\.[0-9]\+\.[0-9]\+\(-rc\.[0-9]\+\)\?\";$/version = \"$version\";/" default.nix

# Update GitHub star count using gh CLI
stars_raw="$(gh api repos/jdx/mise --jq '.stargazers_count')"
if [[ -n $stars_raw ]]; then
if [[ $stars_raw -ge 1000 ]]; then
# Format as k notation (e.g., 19346 -> 19.3k)
stars_formatted="$(echo "scale=1; $stars_raw / 1000" | bc)k"
Copy link

Copilot AI Sep 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The bc command may not be available on all systems. Consider using shell arithmetic instead: stars_formatted=\"$((stars_raw / 1000)).$((stars_raw % 1000 / 100))k\" or add a check to ensure bc is installed.

Suggested change
stars_formatted="$(echo "scale=1; $stars_raw / 1000" | bc)k"
int_part=$((stars_raw / 1000))
frac_part=$(( (stars_raw % 1000) / 100 ))
stars_formatted="${int_part}.${frac_part}k"

Copilot uses AI. Check for mistakes.
# Remove trailing .0k
stars_formatted="${stars_formatted/.0k/k}"
else
stars_formatted="$stars_raw"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: GitHub API Response Validation Error

The release-plz script fetches GitHub stars but doesn't validate the API response. If stars_raw is non-numeric (e.g., API error message, jq returning "null"), numeric operations fail, either crashing the script or writing "null" to the stars data file, which then displays incorrectly on the website.

Fix in Cursor Fix in Web

fi

# Update the stars data file
cat >docs/.vitepress/stars.data.ts <<EOF
// This file is auto-updated by xtasks/release-plz
// Current star count from GitHub API
export default {
load() {
return {
stars: "$stars_formatted",
};
},
};
EOF
echo "Updated star count to $stars_formatted"
fi

mise run render ::: lint-fix

rm -rf crates/aqua-registry/aqua-registry
Expand All @@ -97,6 +124,7 @@ git add \
README.md \
crates/aqua-registry/aqua-registry \
default.nix \
docs/.vitepress/stars.data.ts \
packaging/rpm/mise.spec \
mise.usage.kdl \
completions \
Expand Down
Loading