fix(v2): fix title logic (meta vs heading) + ignore fixed anchor id syntax ()

* parseMarkdownContentTitle should ignore {#my-anchor-id} syntax

* use frontMatter.title in priority for page meta title

* parseMarkdownString should ignore fixed anchor ids syntax

* docs: make the distinction between headingTitle + metaTitle more clear + add useful todo

* docs: make the distinction between headingTitle + metaTitle more clear + add useful todo

* writeHeadingIds should ignore top-level md title like "# Title"
=> we are not supposed to create anchor links for h1 headers

* update tests

* fix doc tests
This commit is contained in:
Sébastien Lorber 2021-04-27 15:44:46 +02:00 committed by GitHub
parent bca796545b
commit 8ebbc17c7b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 124 additions and 77 deletions
packages/docusaurus-plugin-content-docs/src

View file

@ -121,9 +121,7 @@ export function processDocMetadata({
frontMatter: unsafeFrontMatter,
contentTitle,
excerpt,
} = parseMarkdownString(content, {
source,
});
} = parseMarkdownString(content);
const frontMatter = validateDocFrontMatter(unsafeFrontMatter);
const {
@ -205,8 +203,11 @@ export function processDocMetadata({
numberPrefixParser: options.numberPrefixParser,
});
// Default title is the id.
const title: string = frontMatter.title ?? contentTitle ?? baseID;
// TODO expose both headingTitle+metaTitle to theme?
// Different fallbacks order on purpose!
// See https://github.com/facebook/docusaurus/issues/4665#issuecomment-825831367
const headingTitle: string = contentTitle ?? frontMatter.title ?? baseID;
// const metaTitle: string = frontMatter.title ?? contentTitle ?? baseID;
const description: string = frontMatter.description ?? excerpt ?? '';
@ -245,7 +246,7 @@ export function processDocMetadata({
unversionedId,
id,
isDocsHomePage,
title,
title: headingTitle,
description,
source: aliasedSitePath(filePath, siteDir),
sourceDirName,