Extensions to VitePress
Extensions to VitePress are optional features that go beyond baseline VitePress behavior while preserving the same visual language. Enable them case by case in _config.yml or use their Liquid includes directly in page content.
INFO
For features that intentionally mirror VitePress itself, see VitePress Parity.
Optional Extras
These features are not part of baseline VitePress:
- GitHub star widget: a navbar or page-level button showing a live star count from the GitHub API, configured via
jekyll_vitepress.github_star. - GitHub Sponsors widget: a navbar or page-level button linking to GitHub Sponsors or a custom sponsorship URL, configured via
jekyll_vitepress.github_sponsor. - RubyGems downloads button: a reusable page-level button showing live gem download counts from the RubyGems API, configured via
jekyll_vitepress.gem_downloads. - Just the Docs-style callouts: kramdown attribute syntax such as
{: .note }rendered with VitePress-style custom block UI. - Inline labels: Just the Docs-style labels such as
{: .label .label-green }rendered as compact badges. - Local search index: a generated
search.jsonindex for client-side search across sidebar collection content. - Version selector: a data-driven dropdown from
_data/versions.yml, includingcurrent: autosupport. - Copy page: a split button offering “Copy page” and “View as Markdown” for LLM-friendly docs workflows.
Configuration Model
Most extensions are independent. You can enable the GitHub star widget without enabling RubyGems downloads, or use Just the Docs-style labels without using page metric buttons.
jekyll_vitepress:
github_star:
enabled: true
repository: owner/repo
gem_downloads:
enabled: true
name: your_gem
For the complete list of configuration keys, see the Configuration Reference.
Page-Level Includes
Some extensions are available as Liquid includes so they can be used anywhere in Markdown:
{% include github_star_button.html repository="owner/repo" %}
{% include github_sponsor_button.html user="owner" %}
{% include rubygems_downloads_button.html gem="your_gem" %}
When an include has explicit parameters, it can render a one-off button even if the corresponding global navbar widget is disabled.