Pages and Styles
Docusaurus fournit un support de création de pages en tant que composants React dans le dossier website/pages
qui partagent les mêmes en-tête, pied de page et styles que le reste du site.
Provided Props
Docusaurus provides your siteConfig.js as a config
props. Hence, you can access baseUrl
or title
through this props.
Exemple
const React = require('react');
class MyPage extends React.Component {
render() {
const siteConfig = this.props.config;
return <div>{siteConfig.title}</div>;
}
}
module.exports = MyPage;
URL des pages
Tout fichier .js
dans le dossier website/pages
sera converti en HTML statique à l'aide du chemin de fichier après pages
. Les fichiers dans website/pages/en
seront également copiés dans pages
et écraseront tous les fichiers du même nom dans pages
. Par exemple, la page pour le fichier website/pages/en/help.js
peut-être trouvée à l'URL ${baseUrl}/en/help.js
ou à l'URL ${baseUrl}help.js
où ${baseUrl}
est le champ baseURL
configuré dans votre fichier siteConfig.js.
Titre des pages
Par défaut,le titre de votre page est is <title> • <tagline>
où les champs title
et tagline
sont configurés dans siteConfig.js
. Vous pouvez exclure le slogan du titre en paramétrant disableTitleTagline
à true
. Si vous voulez configurer un titre spécifique dans vos pages personnalisées, ajoutez une propriété de classe title
dans votre composant React exporté.
Exemple :
const React = require('react');
class MyPage extends React.Component {
render() {
// ... votre code de rendu
}
}
MyPage.title = 'Mon titre personnalisé';
module.exports = MyPage;
Description des pages
Par défaut, la description de votre page est tagline
définie dans siteConfig.js
. Si vous voulez configurer une description spécifique dans vos pages customisées, ajouter une propriété de classe title
dans votre composant React exporté.
Exemple :
const React = require('react');
class MyPage extends React.Component {
render() {
// ... code de rendu
}
}
MyPage.description = 'Ma description customisée;
module.exports = MyPage;
Cela va être traduit par une méta-balise de description dans le code HTML généré.
<meta property="og:description" content="Ma description personnalisée"/>
<meta name="description" content="Ma description personnalisée"/>
Page Require Paths
Docusaurus provides a few useful React components for users to write their own pages, found in the CompLibrary
module. Ce module est fourni dans le cadre de Docusaurus en node_modules/docusaurus
, donc pour y accéder, les pages dans le répertoire de pages
sont temporairement copiés dans node_modules/docusaurus
lors du rendu au format HTML statique. As seen in the example files, this means that a user page at pages/en/index.js
uses a require path to '../../core/CompLibrary.js'
to import the provided components.
What this means to the user is that if you wish to use the CompLibrary
module, make sure the require path is set correctly. For example, a page at page/mypage.js
would use a path '../core/CompLibrary.js'
.
Si vous souhaitez utiliser vos propres composants dans le répertoire du site, utilisez process.cwd()
qui se référera au répertoire site
pour construire des chemins. For example, if you add a component to website/core/mycomponent.js
, you can use the require path, 'process.cwd() + /core/mycomponent.js'
.
Provided Components
Docusaurus provides the following components in CompLibrary
:
CompLibrary.MarkdownBlock
A React component that parses markdown and renders to HTML.
Exemple :
const MarkdownBlock = CompLibrary.MarkdownBlock;
<MarkdownBlock>
[Markdown syntax for a link](http://www.example.com)
</MarkdownBlock>;
CompLibrary.Container
A React container component using Docusaurus styles. Has optional padding and background color props that you can configure.
Props
Prop | Type | Défault | Description |
---|---|---|---|
padding | Tableau contenant les valeurs 'all' , 'bottom' , 'left' , 'right' , 'top' | [] | Positions du padding. |
arrière-plan | Une des valeurs 'dark' , 'highlight' , 'light' | null | Style d'arrière-plan de l'élément. |
className | String | - | Classe personnalisée pour ajout à l'élément. |
Exemple
<Container
padding={['bottom', 'top']}
background="light"
className="myCustomClass">
...
</Container>
CompLibrary.GridBlock
A React component to organize text and images.
Props
Prop | Type | Défault | Description |
---|---|---|---|
align | Une des valeurs 'left' , 'center' , 'right' | 'left' | Alignement du texte du contenu. |
layout | Une des valeurs 'twoColumn' , 'threeColumn' , 'fourColumn' | 'twoColumn' | Nombre de sections de colonnes dans GridBlock . |
className | String | - | Classe personnalisée pour ajout à l'élément. |
contents | Tableau d'objets de contenu | [] | Contenu de chaque section du bloc GridBlock. Reportez-vous à la table suivante pour les champs disponibles sur un objet de contenu. |
Content Object
Clé | Type | Défault | Description |
---|---|---|---|
title | String | - | Le titre d'affichage de cette section, qui est analysé en utilisant Markdown |
content | String | - | Le texte de cette section, qui est analysé en utilisant Markdown |
image | String | - | Le chemin d’accès de l’image |
imageAlt | String | - | Le texte qui sera affiché dans le cas où l'image n'est pas disponible |
imageAlign | Une des valeurs 'top' , 'left' , 'bottom' , 'right' | 'left' | Alignement de l'image par rapport au texte |
imageLink | String | - | Lien de la destination en cliquant sur le lien d'image |
Exemple
<GridBlock
align="center"
layout="threeColumn"
className="myCustomClass"
contents={[
{
title: `[Learn](${siteConfig.baseUrl}${siteConfig.docsUrl}/tutorial.html)`,
content: 'Learn how to use this project',
image: siteConfig.baseUrl + 'img/learn.png',
imageAlt: 'Learn how to use this project',
imageLink: siteConfig.baseUrl + 'docs/tutorial.html',
},
{
title: 'Frequently Asked Questions',
content: 'Questions gathered from the community',
image: siteConfig.baseUrl + 'img/faq.png',
imageAlign: 'top',
},
{
title: 'More',
content: 'Lots of documentation is on this site',
},
]}
/>
More examples of how these components are used can be found in the generated example files as well as in Docusaurus' own repository for its website set-up.
Translating Strings
When translations are enabled, any pages inside website/pages/en
will be translated for all enabled languages. Les URLs pour les pages non-anglophones utiliseront leurs tags de langue comme indiqué dans le fichier languages.js
. Par exemple, l'URL d'une page française de website/pages/en/help.js
se trouve à ${baseUrl}fr/help.html
.
When writing pages that you wish to translate, wrap any strings to be translated inside a <translate>
tag. Par exemple :
<p>
<translate>I like translations</translate>
</p>
You can also provide an optional description attribute to provide context for translators. e.g,
<a href="/community">
<translate desc="Footer link to page referring to community GitHub and Slack">
Community
</translate>
</a>
Add the following require statement as well:
const translate = require('../../server/translate.js').translate;
Note that this path is valid for files inside pages/en
and should be adjusted accordingly if files are in different locations, as discussed above.
Using Static Assets
Static assets should be placed into the website/static
directory. They can be accessed by their paths, excluding static
. For example, if the site's baseUrl
is /docusaurus/
, an image in website/static/img/logo.png
is available at /docusaurus/img/logo.png
.
Styles
You should configure your site's primary, secondary, and code block colors using the colors
field in siteConfig
as specified here. You can also configure other colors in the same way as described in the siteConfig
doc.
Il existe plusieurs façons d'accéder aux styles par défaut fournis pour votre site. Si vous avez commencé à développer votre site web et exécuter la commande docusaurus-init
ou yarn install
vous pouvez trouver vos styles par défaut dans site/node_modules/docusaurus/lib/static/css/main.css
. Alternatively, the main.css
file may be inspected directly at the Docusaurus GitHub repository.
Vous pouvez fournir vos propres styles personnalisés en les ajoutant n'importe où dans le répertoire website/static
. Any .css
files you provide in the static
directory will get concatenated to the end of Docusaurus' provided styles, allowing you to add to or override Docusaurus default styles as you wish.
One way to figure out what classes you wish to override or add to is to start your server locally and use your browser's inspect element tool.