mirror of
https://github.com/facebook/docusaurus.git
synced 2025-06-22 20:47:53 +02:00
feat(docs,blog,pages): add support for "unlisted" front matter - hide md content in production (#8004)
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
This commit is contained in:
parent
7a023a2c41
commit
683ba3d2a0
131 changed files with 2449 additions and 303 deletions
54
packages/docusaurus-utils/src/contentVisibilityUtils.ts
Normal file
54
packages/docusaurus-utils/src/contentVisibilityUtils.ts
Normal file
|
@ -0,0 +1,54 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
type Env = 'production' | 'development';
|
||||
|
||||
/**
|
||||
* To easily work on draft/unlisted in dev mode, use this env variable!
|
||||
* SIMULATE_PRODUCTION_VISIBILITY=true yarn start:website
|
||||
*/
|
||||
const simulateProductionVisibility =
|
||||
process.env.SIMULATE_PRODUCTION_VISIBILITY === 'true';
|
||||
|
||||
/**
|
||||
* draft/unlisted is a production-only concept
|
||||
* In dev it is ignored and all content files are included
|
||||
*/
|
||||
function isProduction(env: Env | undefined): boolean {
|
||||
return (
|
||||
simulateProductionVisibility ||
|
||||
(env ?? process.env.NODE_ENV) === 'production'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* A draft content will not be included in the production build
|
||||
*/
|
||||
export function isDraft({
|
||||
frontMatter,
|
||||
env,
|
||||
}: {
|
||||
frontMatter: {draft?: boolean};
|
||||
env?: Env;
|
||||
}): boolean {
|
||||
return (isProduction(env) && frontMatter.draft) ?? false;
|
||||
}
|
||||
|
||||
/**
|
||||
* An unlisted content will be included in the production build, but hidden.
|
||||
* It is excluded from sitemap, has noIndex, does not appear in lists etc...
|
||||
* Only users having the link can find it.
|
||||
*/
|
||||
export function isUnlisted({
|
||||
frontMatter,
|
||||
env,
|
||||
}: {
|
||||
frontMatter: {unlisted?: boolean};
|
||||
env?: Env;
|
||||
}): boolean {
|
||||
return (isProduction(env) && frontMatter.unlisted) ?? false;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue