Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
@q42/sanity-plugin-user-guide
Advanced tools
A Sanity plugin to add a simple user guide to the CMS
This is a Sanity Studio v3 plugin.
npm install sanity-plugin-user-guide
Define your page structure for the user guide:
const userGuideStructure = defineUserGuide([
page().title('Home').markdown(home).icon(HomeIcon),
divider(),
page().title('ContactPage').markdown(contactPage).icon(CommentIcon).documentType('contactPage'),
multiPage().title('ContentPage').icon(DocumentIcon).pages([
page().title('Creating a content page').markdown(creatingAContentPage).documentType('contentPage'),
page().title('Content Blocks').markdown(contentBlocks),
page().title('Uploading media').markdown(uploadingMedia),
]),
]);
Add it as a plugin in sanity.config.ts
(or .js):
import {defineConfig} from 'sanity'
import {userGuidePlugin} from 'sanity-plugin-user-guide'
export default defineConfig({
//...
plugins: [userGuidePlugin({userGuideStructure})],
})
If you want to import markdown files from a typescript file, you can add the following snippet to your global.d.ts
.
declare module '*.md' {
const content: string;
export default content;
}
Then you can import the markdown file as a string:
import home from './home.md';
The plugin uses an API similar to Sanity's structure builder to define the user guide structure. Currently, the following methods are available:
A single page in the user guide. To describe the content of the page, you can use either markdown or a react component.
It is possible to link a page to document type(s) or id(s). This will add it to the user menu for those documents. Clicking the link will open the user guide in a side panel of the structure tool.
page().title('Home').markdown(home).icon(HomeIcon).documentType('home')
Methods | Description |
---|---|
title(title) | Sets the title of the page. Parameters: title: string |
slug(slug) | Sets the slug of the page. Uses the title by default. Parameters: slug: string |
markdown(markdown) | Sets the content of the page using markdown. Parameters: markdown: string |
component(component) | Sets the content of the page using a React component. Parameters: component: React.ElementType |
icon(icon) | Sets an Icon for this page in the page tree. Parameters: icon: React.ElementType |
documentType(documentType) | Selects one or multiple document types that link to this page. Parameters: documentType: string | string[] |
documentId(documentId) | Selects one or multiple document IDs that link to this page. Parameters: documentId: string | string[] |
A page that contains multiple subpages. This is useful for splitting up a large topic into multiple steps.
multiPage().title('ContentPage').icon(DocumentIcon).pages([
page().title('Creating a content page').markdown(creatingAContentPage).documentType(contentPage),
page().title('Content Blocks').markdown(contentBlocks),
page().title('Uploading media').markdown(uploadingMedia),
])
Methods | Description |
---|---|
title(title) | Sets the title of the page. Parameters: title: string |
slug(slug) | Sets the slug of the page. Uses the title by default. Parameters: slug: string |
pages(pages) | Set the pages to be displayed within this multi page. You can use the page method above to generate these pages. Parameters: pages: PageBuilder[] |
icon(icon) | Sets an Icon for this page in the page tree. Parameters: icon: React.ElementType |
A simple divider in the user guide tree to separate groups of pages. This has no additional methods.
divider()
MIT © Q42
This plugin uses @sanity/plugin-kit with default configuration for build & watch scripts.
See Testing a plugin in Sanity Studio on how to run this plugin with hotreload in the studio.
FAQs
A Sanity plugin to add a simple user guide to the CMS
The npm package @q42/sanity-plugin-user-guide receives a total of 15 weekly downloads. As such, @q42/sanity-plugin-user-guide popularity was classified as not popular.
We found that @q42/sanity-plugin-user-guide demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 17 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.