---
# TODO change sidebar
sidebar_position: 2
slug: /api/plugins/@docusaurus/plugin-content-showcase
---
# 📦 plugin-content-showcase
import APITable from '@site/src/components/APITable';
Provides the Showcase feature and is the default blog plugin for Docusaurus.
## Installation {#installation}
```bash npm2yarn
npm install --save @docusaurus/plugin-content-showcase
```
:::tip
If you use the preset `@docusaurus/preset-classic`, you don't need to install this plugin as a dependency.
You can configure this plugin through the [preset options](../../using-plugins.mdx#docusauruspreset-classic).
:::
## Configuration {#configuration}
Accepted fields:
```mdx-code-block
```
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `path` | `string` | `'showcase'` | Path to the blog content directory on the file system, relative to site dir. |
| `routeBasePath` | `string` | `'/showcase'` | URL route for the blog section of your site. **DO NOT** include a trailing slash. Use `/` to put the blog at root path. |
| `include` | `string[]` | `['**/*.{yml,yaml}']` | Array of glob patterns matching Markdown files to be built, relative to the content path. |
| `exclude` | `string[]` | _See example configuration_ | Array of glob patterns matching Markdown files to be excluded. Serves as refinement based on the `include` option. |
| `tags` | `string \| [TagOption](#TagsOption)` | `string` | |
```mdx-code-block
```
### Types {#types}
#### `TagsOption` {#TagsOption}
```ts
type Tag = {
label: string;
description: {
message: string;
id: string;
};
color: string;
};
type TagsOption = {
[key: string]: Tag;
};
```
### Example configuration {#ex-config}
You can configure this plugin through preset options or plugin options.
:::tip
Most Docusaurus users configure this plugin through the preset options.
:::
```js config-tabs
// Preset Options: blog
// Plugin Options: @docusaurus/plugin-content-showcase
const config = {
path: 'showcase',
routeBasePath: 'showcase',
include: ['**/*.{yml,yaml}'],
exclude: [
'**/_*.{js,jsx,ts,tsx,md,mdx}',
'**/_*/**',
'**/*.test.{js,jsx,ts,tsx}',
'**/__tests__/**',
],
// tags: 'tags.yml'
// or
tags: {
hello: {
label: 'Hello',
description: {
message: 'Hello',
id: 'Hello',
},
color: '#FF0000',
},
docusaurus: {
label: 'Docusaurus',
description: {
message: 'Docusaurus',
id: 'Docusaurus',
},
color: '#00FF00',
},
},
};
```
## Markdown front matter {#markdown-front-matter}
Markdown documents can use the following Markdown [front matter](../../guides/markdown-features/markdown-features-intro.mdx#front-matter) metadata fields, enclosed by a line `---` on either side.
Accepted fields:
```mdx-code-block
```
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `title` | `string` | `undefined` | Title of the showcase item. |
| `description` | `string` | `undefined` | Description on the showcase item. |
| `preview` | `string \| null` | `undefined` | Image preview of the showcase item, either an url or link to a file |
| `website` | `string` | `undefined` | |
| `source` | `string \| null` | `undefined` | Link of the showcase item's source code |
| `tags` | `string[]` | `undefined` | ⚠️ Prefer using `authors`. A description of the author. |
```mdx-code-block
```
Example:
```md
---
title: Dyte
description: The most developer friendly live video SDK
preview: ./showcase/dyte.png
website: https://docs.dyte.io
source: https://github.com/dyte-in/docs
tags:
- favorite
- product
- design
- versioning
- large
- opensource
---
A Markdown blog post
```
## i18n {#i18n}
Read the [i18n introduction](../../i18n/i18n-introduction.mdx) first.
### Translation files location {#translation-files-location}
- **Base path**: `website/i18n/[locale]/docusaurus-plugin-content-showcase`
- **Multi-instance path**: `website/i18n/[locale]/docusaurus-plugin-content-showcase-[pluginId]`
- **JSON files**: extracted with [`docusaurus write-translations`](../../cli.mdx#docusaurus-write-translations-sitedir)
- **Markdown files**: `website/i18n/[locale]/docusaurus-plugin-content-showcase`
### Example file-system structure {#example-file-system-structure}
```bash
website/i18n/[locale]/docusaurus-plugin-content-showcase
│
│ # translations for website/blog
├── authors.yml
├── first-blog-post.md
├── second-blog-post.md
│
│ # translations for the plugin options that will be rendered
└── options.json
```