Static CMS
Star StaticJsCMS/static-cms on GitHub
v4.3.0DocsExamplesDemoCommunity

Custom Links & Pages

Static CMS exposes a window.CMS global object that you can use to register external links or links custom pages, via registerAdditionalLink. The links are displayed at the bottom of the navigation menu in the order they are registered.

React Components Inline

The registerAdditionalLink requires you to provide a React component. If you have a build process in place for your project, it is possible to integrate with this build process.

However, although possible, it may be cumbersome or even impractical to add a React build phase. For this reason, Static CMS exposes some constructs globally to allow you to create components inline: h (alias for React.createElement) as well some basic hooks (useState, useMemo, useEffect, useCallback).

Params

registerAdditionalLink takes an AdditionalLink object with the following properties:

ParamTypeDescription
idstringUnique identifier for the link
titlestringDisplay text for the link
datastring
| React Function Component
  • string - The href for the link
  • React Function Component - A react component to render on the route /page/[id]
optionsobjectOptional. See Options

Options

Available options for each additional link are:

ParamTypeDescription
iconNamestringThe name of a custom registered icon to display. See Custom Icons

Examples

CMS.registerAdditionalLink({
  id: 'example',
  title: 'Example.com',
  data: 'https://example.com',
  options: {
    icon: 'page',
  },
});

Custom Page

const CustomPage = () => {
  return h('div', {}, 'I am a custom page!');
};

CMS.registerAdditionalLink({
  id: 'custom-page',
  title: 'Custom Page',
  data: CustomPage,
  options: {
    icon: 'page',
  },
});