/docs/plugins/<name> and /docs/plugins/by/<maintainer> are generated at build time by a small Docusaurus plugin (website/plugins/plugin-catalog-pages) from the same plugins.json the grid fetches, so a merged catalog PR is the only way a page appears or changes. Plugin page: full description with the Disclosure sentence pulled into a callout, pinned commit / version / platforms / requires facts, tools, hooks and env chips, Desktop install button + CLI command, repository and reviewed source links, optional screenshots gallery, optional README rendered from the PINNED commit (fetched at build, allowlisted HTML, raw HTML dropped, relative links and images resolved against the pinned tree), and a "More by this author" shelf. Author page: everything a maintainer has in the catalog with total stars and a profile link when all repos share one owner. Cards on the grid link through: the title is a link and a card click opens the page (the Desktop picker embed keeps expanding in place). The shared vocabulary (entry type, tier/category taxonomy, link builders) moved to src/components/PluginCatalog/catalog.ts so the three surfaces cannot drift. Docs: field table and catalog README describe screenshots:/readme: and the pages.
217 lines
6.3 KiB
TypeScript
217 lines
6.3 KiB
TypeScript
import {themes as prismThemes} from 'prism-react-renderer';
|
|
import type {Config} from '@docusaurus/types';
|
|
import type * as Preset from '@docusaurus/preset-classic';
|
|
import relativeDocLinks from './src/remark/relativeDocLinks';
|
|
|
|
const config: Config = {
|
|
title: 'Hermes Agent',
|
|
tagline: 'The self-improving AI agent',
|
|
favicon: 'img/favicon.ico',
|
|
|
|
url: 'https://hermes-agent.nousresearch.com',
|
|
baseUrl: '/docs/',
|
|
|
|
organizationName: 'NousResearch',
|
|
projectName: 'hermes-agent',
|
|
|
|
onBrokenLinks: 'warn',
|
|
|
|
markdown: {
|
|
mermaid: true,
|
|
hooks: {
|
|
onBrokenMarkdownLinks: 'warn',
|
|
},
|
|
},
|
|
|
|
i18n: {
|
|
defaultLocale: 'en',
|
|
locales: ['en', 'zh-Hans'],
|
|
localeConfigs: {
|
|
en: {
|
|
label: 'English',
|
|
},
|
|
'zh-Hans': {
|
|
label: '简体中文',
|
|
htmlLang: 'zh-Hans',
|
|
},
|
|
},
|
|
},
|
|
|
|
themes: [
|
|
'@docusaurus/theme-mermaid',
|
|
],
|
|
|
|
plugins: [
|
|
// Static /plugins/<name> and /plugins/by/<author> pages generated from the catalog JSON.
|
|
'./plugins/plugin-catalog-pages',
|
|
[
|
|
'@docusaurus/plugin-client-redirects',
|
|
{
|
|
// Static-host redirects for renamed doc pages (GitHub Pages can't
|
|
// do server-side redirects). Paths are relative to baseUrl (/docs/).
|
|
redirects: [
|
|
{
|
|
// Renamed in #44470 (Automation Blueprints terminology rebrand)
|
|
from: '/guides/automation-templates',
|
|
to: '/guides/automation-blueprints',
|
|
},
|
|
{
|
|
// Moved when the Plugins subcategory was created under
|
|
// Developer Guide > Extending (docs restructure, July 2026)
|
|
from: '/guides/build-a-hermes-plugin',
|
|
to: '/developer-guide/plugins',
|
|
},
|
|
{
|
|
// Users guess these short paths from abbreviated links and hit
|
|
// raw 404s (consumer-onboarding audit finding #1, Aug 2026).
|
|
from: '/quickstart',
|
|
to: '/getting-started/quickstart',
|
|
},
|
|
{
|
|
from: '/installation',
|
|
to: '/getting-started/installation',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
],
|
|
|
|
presets: [
|
|
[
|
|
'classic',
|
|
{
|
|
docs: {
|
|
routeBasePath: '/', // Docs at the root of /docs/
|
|
sidebarPath: './sidebars.ts',
|
|
editUrl: 'https://github.com/NousResearch/hermes-agent/edit/main/website/',
|
|
// Relative `.md` links (readable on GitHub, #114428) must also resolve
|
|
// across the zh-Hans fallback boundary; see src/remark/relativeDocLinks.js.
|
|
beforeDefaultRemarkPlugins: [[relativeDocLinks, {siteDir: __dirname}]],
|
|
},
|
|
blog: false,
|
|
theme: {
|
|
customCss: './src/css/custom.css',
|
|
},
|
|
} satisfies Preset.Options,
|
|
],
|
|
],
|
|
|
|
themeConfig: {
|
|
image: 'img/hermes-agent-banner.png',
|
|
// Algolia DocSearch (replaces @easyops-cn/docusaurus-search-local).
|
|
// The local plugin shipped a ~16 MB client-side lunr index that every
|
|
// visitor downloaded and hydrated before their first result; DocSearch
|
|
// answers from Algolia's servers with no client index at all. These are
|
|
// public search-only credentials — safe to commit (the admin key is not
|
|
// in the repo). Index is populated by the Algolia Crawler configured at
|
|
// crawler.algolia.com; contextualSearch scopes results to the active
|
|
// locale via the docusaurus_tag/lang facets the crawler records carry.
|
|
algolia: {
|
|
appId: '2JLBVEYZN5',
|
|
apiKey: '8fda2a49223ce185ac30c2dbf6898a07',
|
|
indexName: 'hermes docs',
|
|
contextualSearch: true,
|
|
},
|
|
colorMode: {
|
|
defaultMode: 'dark',
|
|
respectPrefersColorScheme: true,
|
|
},
|
|
docs: {
|
|
sidebar: {
|
|
hideable: true,
|
|
autoCollapseCategories: true,
|
|
},
|
|
},
|
|
navbar: {
|
|
title: 'Hermes Agent',
|
|
logo: {
|
|
alt: 'Hermes Agent',
|
|
src: 'img/logo.png',
|
|
},
|
|
items: [
|
|
{
|
|
type: 'docSidebar',
|
|
sidebarId: 'docs',
|
|
position: 'left',
|
|
label: 'Docs',
|
|
},
|
|
{
|
|
to: '/skills',
|
|
label: 'Skills',
|
|
position: 'left',
|
|
},
|
|
{
|
|
to: '/plugins',
|
|
label: 'Plugins',
|
|
position: 'left',
|
|
},
|
|
{
|
|
href: 'https://hermes-agent.nousresearch.com/',
|
|
label: 'Download',
|
|
position: 'left',
|
|
},
|
|
{
|
|
type: 'localeDropdown',
|
|
position: 'right',
|
|
},
|
|
{
|
|
href: 'https://hermes-agent.nousresearch.com',
|
|
label: 'Home',
|
|
position: 'right',
|
|
},
|
|
{
|
|
href: 'https://github.com/NousResearch/hermes-agent',
|
|
label: 'GitHub',
|
|
position: 'right',
|
|
},
|
|
{
|
|
href: 'https://discord.gg/NousResearch',
|
|
label: 'Discord',
|
|
position: 'right',
|
|
},
|
|
],
|
|
},
|
|
footer: {
|
|
style: 'dark',
|
|
links: [
|
|
{
|
|
title: 'Docs',
|
|
items: [
|
|
{ label: 'Getting Started', to: '/getting-started/quickstart' },
|
|
{ label: 'User Guide', to: '/user-guide/cli' },
|
|
{ label: 'Developer Guide', to: '/developer-guide/architecture' },
|
|
{ label: 'Reference', to: '/reference/cli-commands' },
|
|
],
|
|
},
|
|
{
|
|
title: 'Community',
|
|
items: [
|
|
{ label: 'Discord', href: 'https://discord.gg/NousResearch' },
|
|
{ label: 'GitHub Issues', href: 'https://github.com/NousResearch/hermes-agent/issues' },
|
|
{ label: 'Skills Hub', href: 'https://agentskills.io' },
|
|
],
|
|
},
|
|
{
|
|
title: 'More',
|
|
items: [
|
|
{ label: 'Desktop Download', href: 'https://hermes-agent.nousresearch.com/' },
|
|
{ label: 'GitHub', href: 'https://github.com/NousResearch/hermes-agent' },
|
|
{ label: 'Nous Research', href: 'https://nousresearch.com' },
|
|
],
|
|
},
|
|
],
|
|
copyright: `Built by <a href="https://nousresearch.com">Nous Research</a> · MIT License · ${new Date().getFullYear()}`,
|
|
},
|
|
prism: {
|
|
theme: prismThemes.github,
|
|
darkTheme: prismThemes.dracula,
|
|
additionalLanguages: ['bash', 'yaml', 'json', 'python', 'toml'],
|
|
},
|
|
mermaid: {
|
|
theme: {light: 'neutral', dark: 'dark'},
|
|
},
|
|
} satisfies Preset.ThemeConfig,
|
|
};
|
|
|
|
export default config;
|