diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index bbd99f13930a..f68f1653f516 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -1,7 +1,7 @@
import 'dotenv/config';
import { themes as prismThemes } from 'prism-react-renderer';
import type { Config } from '@docusaurus/types';
-import { GlobExcludeDefault } from '@docusaurus/utils';
+import { GlobExcludeDefault, parseMarkdownContentTitle } from '@docusaurus/utils';
import type * as Preset from '@docusaurus/preset-classic';
import type { ThemeConfig as DocSearchThemeConfig } from '@docsearch/docusaurus-adapter';
import type * as DocsPlugin from '@docusaurus/plugin-content-docs';
@@ -630,6 +630,12 @@ const config: Config = {
}
frontMatter.sidebar_custom_props ??= { icon: '🚀 ' };
}
+ if (!frontMatter.title && !path.basename(params.filePath).startsWith('_') && !parseMarkdownContentTitle(result.content).contentTitle) {
+ // Docusaurus only detects the h1 as the page title if it's at the very top (only imports may come before it)
+ throw new Error(
+ `${params.filePath}: Missing page title. Move the h1 heading to the top of the document (above any components such as ), or set a title in the front matter.`
+ );
+ }
return result;
},
},
diff --git a/millicast/getting-started/index.mdx b/millicast/getting-started/index.mdx
index 333a765623be..06bddf13d6c5 100644
--- a/millicast/getting-started/index.mdx
+++ b/millicast/getting-started/index.mdx
@@ -3,13 +3,13 @@ sidebar_label: Getting Started
slug: /getting-started
---
+# Getting started with OptiView Real-time Streaming
+
import DocCard from '@theme/DocCard';
import RebrandingNotice from '@site/millicast/callouts/_rebranding_notice.md';
-# Getting started with OptiView Real-time Streaming
-
Dolby OptiView's Real-time Streaming makes it easier to globally stream your high-value content with broadcast-quality picture and sound to massive audiences all with subsecond latency. Use this tutorial to quickly set up and run your own private stream and begin building applications for a variety of use cases.
:::tip[OptiView Real-time Account]
diff --git a/theolive_versioned_docs/version-v1/getting-started.mdx b/theolive_versioned_docs/version-v1/getting-started.mdx
index b7f464996a2c..f2aafc278298 100644
--- a/theolive_versioned_docs/version-v1/getting-started.mdx
+++ b/theolive_versioned_docs/version-v1/getting-started.mdx
@@ -3,6 +3,8 @@ sidebar_position: 2
sidebar_label: Getting started
---
+# Backend
+
import RebrandingNotice from '@site/theolive_versioned_docs/version-v1/callouts/_rebranding_notice.md';
import V2Notice from '@site/theolive_versioned_docs/version-v1/callouts/_v2_notice.md';
@@ -10,8 +12,6 @@ import V2Notice from '@site/theolive_versioned_docs/version-v1/callouts/_v2_noti
-# Backend
-
THEOlive provides a REST API to manage channels, configure them and start / stop them. Each possible call can be found at our [API Reference](./api/channels/create-channel.api.mdx).
However, to make things easier for non-developers, we built a management console on top of these API calls which makes it straightforward to perform the basic actions. To be able to create and use a THEOlive channel, you should register for an account and get a token to perform [authenticated requests](./platform/authorization.mdx) to our API.