mirror of
https://github.com/facebook/docusaurus.git
synced 2025-06-22 12:37:58 +02:00
feat(v2): create useDocusaurusContext (#1418)
This commit is contained in:
parent
688aa4b5c5
commit
cb7dc93a53
7 changed files with 45 additions and 23 deletions
|
@ -0,0 +1,15 @@
|
||||||
|
/**
|
||||||
|
* Copyright (c) 2017-present, Facebook, Inc.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the MIT license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import {useContext} from 'react';
|
||||||
|
import DocusaurusContext from '@docusaurus/context';
|
||||||
|
|
||||||
|
function useDocusaurusContext() {
|
||||||
|
return useContext(DocusaurusContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default useDocusaurusContext;
|
|
@ -5,15 +5,17 @@
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, {useContext} from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import Head from '@docusaurus/Head';
|
import Head from '@docusaurus/Head';
|
||||||
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; // eslint-disable-line
|
||||||
|
|
||||||
import Footer from '@theme/Footer'; // eslint-disable-line
|
import Footer from '@theme/Footer'; // eslint-disable-line
|
||||||
import Layout from '@theme/Layout'; // eslint-disable-line
|
import Layout from '@theme/Layout'; // eslint-disable-line
|
||||||
import DocusaurusContext from '@docusaurus/context';
|
|
||||||
import Post from '../Post';
|
import Post from '../Post';
|
||||||
|
|
||||||
function BlogPage(props) {
|
function BlogPage(props) {
|
||||||
const context = useContext(DocusaurusContext);
|
const context = useDocusaurusContext();
|
||||||
const {language, siteConfig = {}} = context;
|
const {language, siteConfig = {}} = context;
|
||||||
const {baseUrl, favicon} = siteConfig;
|
const {baseUrl, favicon} = siteConfig;
|
||||||
const {
|
const {
|
||||||
|
|
|
@ -5,18 +5,21 @@
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, {useContext} from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import Head from '@docusaurus/Head';
|
import Head from '@docusaurus/Head';
|
||||||
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; // eslint-disable-line
|
||||||
|
|
||||||
import Layout from '@theme/Layout'; // eslint-disable-line
|
import Layout from '@theme/Layout'; // eslint-disable-line
|
||||||
import Footer from '@theme/Footer'; // eslint-disable-line
|
import Footer from '@theme/Footer'; // eslint-disable-line
|
||||||
import DocusaurusContext from '@docusaurus/context';
|
|
||||||
import Post from '../Post';
|
import Post from '../Post';
|
||||||
|
|
||||||
function BlogPost(props) {
|
function BlogPost(props) {
|
||||||
const {metadata: contextMetadata = {}, siteConfig = {}} = useContext(
|
const {
|
||||||
DocusaurusContext,
|
metadata: contextMetadata = {},
|
||||||
);
|
siteConfig = {},
|
||||||
|
} = useDocusaurusContext();
|
||||||
const {baseUrl, favicon} = siteConfig;
|
const {baseUrl, favicon} = siteConfig;
|
||||||
const {language, title} = contextMetadata;
|
const {language, title} = contextMetadata;
|
||||||
const {content, metadata} = props;
|
const {content, metadata} = props;
|
||||||
|
|
|
@ -5,19 +5,19 @@
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, {useContext} from 'react';
|
import React from 'react';
|
||||||
import {renderRoutes} from 'react-router-config';
|
import {renderRoutes} from 'react-router-config';
|
||||||
|
|
||||||
import Head from '@docusaurus/Head';
|
import Head from '@docusaurus/Head';
|
||||||
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; // eslint-disable-line
|
||||||
|
|
||||||
import Layout from '@theme/Layout'; // eslint-disable-line
|
import Layout from '@theme/Layout'; // eslint-disable-line
|
||||||
import Footer from '@theme/Footer'; // eslint-disable-line
|
import Footer from '@theme/Footer'; // eslint-disable-line
|
||||||
import Navbar from '@theme/Navbar'; // eslint-disable-line
|
import Navbar from '@theme/Navbar'; // eslint-disable-line
|
||||||
import Sidebar from '@theme/Sidebar'; // eslint-disable-line
|
import Sidebar from '@theme/Sidebar'; // eslint-disable-line
|
||||||
|
|
||||||
import DocusaurusContext from '@docusaurus/context';
|
|
||||||
|
|
||||||
function Doc(props) {
|
function Doc(props) {
|
||||||
const {siteConfig = {}} = useContext(DocusaurusContext);
|
const {siteConfig = {}} = useDocusaurusContext();
|
||||||
const {route, docsMetadata, location} = props;
|
const {route, docsMetadata, location} = props;
|
||||||
const {baseUrl, favicon} = siteConfig;
|
const {baseUrl, favicon} = siteConfig;
|
||||||
return (
|
return (
|
||||||
|
|
|
@ -5,13 +5,13 @@
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, {useContext} from 'react';
|
import React from 'react';
|
||||||
import Head from '@docusaurus/Head';
|
|
||||||
|
|
||||||
import DocusaurusContext from '@docusaurus/context';
|
import Head from '@docusaurus/Head';
|
||||||
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
||||||
|
|
||||||
function Markdown(props) {
|
function Markdown(props) {
|
||||||
const context = useContext(DocusaurusContext);
|
const context = useDocusaurusContext();
|
||||||
const {siteConfig} = context;
|
const {siteConfig} = context;
|
||||||
const highlight = Object.assign(
|
const highlight = Object.assign(
|
||||||
{},
|
{},
|
||||||
|
|
|
@ -5,14 +5,15 @@
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, {useContext} from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import Link from '@docusaurus/Link';
|
import Link from '@docusaurus/Link';
|
||||||
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
||||||
|
|
||||||
import Search from '@theme/Search';
|
import Search from '@theme/Search';
|
||||||
import DocusaurusContext from '@docusaurus/context';
|
|
||||||
|
|
||||||
function Navbar(props) {
|
function Navbar(props) {
|
||||||
const context = useContext(DocusaurusContext);
|
const context = useDocusaurusContext();
|
||||||
const {siteConfig = {}, env = {}, metadata = {}} = context;
|
const {siteConfig = {}, env = {}, metadata = {}} = context;
|
||||||
// TODO: navbar headerlinks should depends on theme, not siteConfig;
|
// TODO: navbar headerlinks should depends on theme, not siteConfig;
|
||||||
const {
|
const {
|
||||||
|
|
|
@ -5,15 +5,16 @@
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, {useContext} from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import Head from '@docusaurus/Head'; // eslint-disable-line
|
import Head from '@docusaurus/Head'; // eslint-disable-line
|
||||||
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; // eslint-disable-line
|
||||||
|
|
||||||
import Footer from '@theme/Footer'; // eslint-disable-line
|
import Footer from '@theme/Footer'; // eslint-disable-line
|
||||||
import Layout from '@theme/Layout'; // eslint-disable-line
|
import Layout from '@theme/Layout'; // eslint-disable-line
|
||||||
|
|
||||||
import DocusaurusContext from '@docusaurus/context';
|
|
||||||
|
|
||||||
function Pages({content}) {
|
function Pages({content}) {
|
||||||
const context = useContext(DocusaurusContext);
|
const context = useDocusaurusContext();
|
||||||
const {metadata = {}, siteConfig = {}} = context;
|
const {metadata = {}, siteConfig = {}} = context;
|
||||||
const {baseUrl, favicon} = siteConfig;
|
const {baseUrl, favicon} = siteConfig;
|
||||||
const {language} = metadata;
|
const {language} = metadata;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue