Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ function Layout(props) {
title: siteTitle,
themeConfig: {image: defaultImage},
url: siteUrl,
titleDelimiter,
} = siteConfig;
const {
children,
Expand All @@ -33,8 +34,9 @@ function Layout(props) {
permalink,
version,
} = props;
const metaTitle = title ? `${title} | ${siteTitle}` : siteTitle;

const metaTitle = title
? `${title} ${titleDelimiter} ${siteTitle}`
: siteTitle;
const metaImage = image || defaultImage;
let metaImageUrl = siteUrl + useBaseUrl(metaImage);
if (!isInternalUrl(metaImage)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,17 @@ import useBaseUrl from '@docusaurus/useBaseUrl';

function DocItem(props) {
const {siteConfig = {}} = useDocusaurusContext();
const {url: siteUrl, title: siteTitle} = siteConfig;
const {url: siteUrl, title: siteTitle, titleDelimiter} = siteConfig;
const {content: DocContent} = props;
const {metadata} = DocContent;
const {description, title, permalink} = metadata;
const {
frontMatter: {image: metaImage, keywords},
} = DocContent;

const metaTitle = title ? `${title} | ${siteTitle}` : siteTitle;
const metaTitle = title
? `${title} ${titleDelimiter} ${siteTitle}`
: siteTitle;
let metaImageUrl = siteUrl + useBaseUrl(metaImage);
if (!isInternalUrl(metaImage)) {
metaImageUrl = metaImage;
Expand Down
6 changes: 4 additions & 2 deletions packages/docusaurus-theme-classic/src/theme/DocItem/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import {

function DocItem(props: Props): JSX.Element {
const {siteConfig = {}} = useDocusaurusContext();
const {url: siteUrl, title: siteTitle} = siteConfig;
const {url: siteUrl, title: siteTitle, titleDelimiter} = siteConfig;
const {content: DocContent} = props;
const {metadata} = DocContent;
const {
Expand Down Expand Up @@ -54,7 +54,9 @@ function DocItem(props: Props): JSX.Element {
// See https://github.com/facebook/docusaurus/issues/3362
const showVersionBadge = versions.length > 1;

const metaTitle = title ? `${title} | ${siteTitle}` : siteTitle;
const metaTitle = title
? `${title} ${titleDelimiter} ${siteTitle}`
: siteTitle;
const metaImageUrl = useBaseUrl(metaImage, {absolute: true});
return (
<>
Expand Down
5 changes: 4 additions & 1 deletion packages/docusaurus-theme-classic/src/theme/Layout/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ function Layout(props: Props): JSX.Element {
title: siteTitle,
themeConfig: {image: defaultImage, metadatas},
url: siteUrl,
titleDelimiter,
} = siteConfig;
const {
children,
Expand All @@ -44,7 +45,9 @@ function Layout(props: Props): JSX.Element {
keywords,
permalink,
} = props;
const metaTitle = title ? `${title} | ${siteTitle}` : siteTitle;
const metaTitle = title
? `${title} ${titleDelimiter} ${siteTitle}`
: siteTitle;
const metaImage = image || defaultImage;
const metaImageUrl = useBaseUrl(metaImage, {absolute: true});
const faviconUrl = useBaseUrl(favicon);
Expand Down
1 change: 1 addition & 0 deletions packages/docusaurus-types/src/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ export interface DocusaurusConfig {
[key: string]: unknown;
}
)[];
titleDelimiter?: string;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ Object {
"themeConfig": Object {},
"themes": Array [],
"title": "Hello",
"titleDelimiter": "|",
"url": "https://docusaurus.io",
}
`;
3 changes: 3 additions & 0 deletions packages/docusaurus/src/server/configValidation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ export const DEFAULT_CONFIG: Pick<
| 'presets'
| 'customFields'
| 'themeConfig'
| 'titleDelimiter'
> = {
onBrokenLinks: 'throw',
onDuplicateRoutes: 'warn',
Expand All @@ -31,6 +32,7 @@ export const DEFAULT_CONFIG: Pick<
presets: [],
customFields: {},
themeConfig: {},
titleDelimiter: '|',
};

const PluginSchema = Joi.alternatives().try(
Expand Down Expand Up @@ -90,6 +92,7 @@ const ConfigSchema = Joi.object({
}).unknown(),
),
tagline: Joi.string().allow(''),
titleDelimiter: Joi.string().default('|'),
});

// TODO move to @docusaurus/utils-validation
Expand Down
14 changes: 14 additions & 0 deletions website/docs/api/docusaurus.config.js.md
Original file line number Diff line number Diff line change
Expand Up @@ -371,3 +371,17 @@ module.exports = {
],
};
```

### `titleDelimiter`

- Type: `string`

A string that will be used as title delimiter in the generated `<title>` tag.

Example:

```js title="docusaurus.config.js"
module.exports = {
titleDelimiter: '🦖', // Defaults to `|`
};
```
6 changes: 3 additions & 3 deletions website/docs/theme-classic.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ module.exports = {

// Unicode icons such as '\u2600' will work
// Unicode with 5 chars require brackets: '\u{1F602}'
lightIcon: '\u{1F602}'
lightIcon: '\u{1F602}',

lightIconStyle: {
marginLeft: '1px',
Expand Down Expand Up @@ -89,7 +89,7 @@ module.exports = {

You can configure additional html metadatas (and override existing ones).

```js {4-6} title="docusaurus.config.js"
```js {4} title="docusaurus.config.js"
module.exports = {
// ...
themeConfig: {
Expand All @@ -103,7 +103,7 @@ module.exports = {

Sometimes you want to announce something in your website. Just for such a case, you can add an announcement bar. This is a non-fixed and optionally dismissable panel above the navbar.

```js {4-10} title="docusaurus.config.js"
```js {4-11} title="docusaurus.config.js"
module.exports = {
// ...
themeConfig: {
Expand Down