Blog
Configuração inicial#
Para configurar o blog do seu site, comece criando um diretório blog.
Em seguida, adicione um link do item ao seu blog dentro de docusaurus.config.js:
module.exports = { themeConfig: { // ... navbar: { items: [ // ... {to: 'blog', label: 'Blog', position: 'left'}, // ou position: 'right' ], }, },};Adicionando posts#
Para publicar no blog, crie um arquivo dentro do diretório de blog cujo nome esteja no formato AAAA-MM-DD-Título-do-meu-Post.md. A data da postagem é extraída do nome do arquivo.
Por exemplo, em meu-site/blog/2019-09-05-hello-docusaurus-v2.md:
---title: Bem-vindo ao Docusaurus v2author: Joel Marceyauthor_title: Co-criador do Docusaurus 1author_url: https://github.com/JoelMarceyauthor_image_url: https://graph.facebook.com/611217057/picture/?height=200&width=200tags: [hello, docusaurus-v2]description: Este é eu primeiro post no Docusaurus 2.image: https://i.imgur.com/mErPwqL.pnghide_table_of_contents: false---Bem-vindo a este blog. Esse blog foi criado com [**Docusaurus 2**](https://docusaurus.io/).
<!--truncate-->
Esse é o meu primeiro post no Docusaurus 2.
Um monte de exploração para seguir.Opções do cabeçalho#
O único campo obrigatório aqui é title. No entanto, também fornecemos opções para adicionar informações sobre o autor do post assim como outras opções.
author: O nome do autor a ser mostrado.author_url: A URL a qual o nome do autor será vinculado. Este pode ser um endereço de perfil do GitHub, Twitter, Facebook, etc.author_image_url: A URL para a foto de perfil do autor.author_title: Uma descrição do autor.title: O título do post.slug: Permite customizar a URL do post (/<routeBasePath>/<slug>). Suporta a vários padrões:slug: my-blog-post,slug: /my/path/to/blog/post, slug:/.date: A data de criação do post. Se não for especificado, pode ser extraído do nome do arquivo, por exemplo,2021-04-15-post.mdx. Por padrão, é o horário de criação do arquivo Markdown.tags: Uma lista de strings ou objetos de dois campos de stringlabelepermalinkpara marcar para a sua publicação.draft: Um sinalizador booleano que indica se o post ainda não deve ser publicado pois ainda é um rascunho. No entanto, postagens de rascunho serão exibidas durante o desenvolvimento.description: A descrição do seu post, que se tornará o<meta name="description" content="..."/>e<meta property="og:description" content="..."/>em<head>, usado pelos motores de busca. Se este campo não estiver presente, ele irá para a primeira linha do conteúdo.keywords: Meta tag de Palavras-chave, que se tornará a<meta name="keywords" content="keyword1,keyword2,..."/>no<head>, usadas pelos motores de busca.image: Capa ou imagem em miniatura que será usada ao exibir o link para a sua publicação.hide_table_of_content: Se deseja ocultar a tabela de conteúdos à direita. Por padrão, éfalse.
Definindo um resumo para o post#
Use o marcador <!--truncate--> no seu post para demarcar a parte do seu post que será mostrada como resumo ao visualizar todos os posts publicados. Tudo que estiver acima de <!--truncate--> será parte do resumo. Por exemplo:
---title: Truncation Example---Tudo isso fará parte do resumo da postagem do blog.
Até isso.
<!--truncate-->
Mas qualquer coisa daqui pra baixo não será.
Isso não.
Nem isso.Feed#
Você pode gerar RSS/Atom feed passando feedOptions. Por padrão, os feeds RSS e Atom são gerados. Para desativar a geração de feed, defina feedOptions.type para null.
feedOptions?: { type?: 'rss' | 'atom' | 'all' | null; title?: string; description?: string; copyright: string; language?: string; // valores possíveis: http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes};Exemplo de Uso:
module.exports = { // ... presets: [ [ '@docusaurus/preset-classic', { blog: { feedOptions: { type: 'all', copyright: `Copyright © ${new Date().getFullYear()} Facebook, Inc.`, }, }, }, ], ],};Acessando o feed:
O feed para RSS pode ser encontrado em:
https://{your-domain}/blog/rss.xmle para o Atom:
https://{your-domain}/blog/atom.xmlTópicos avançados#
Modo somente blog#
Você pode executar o seu site Docusaurus 2 sem uma landing page, em vez disso, ter a página da lista de postagens do seu blog como a página index. Defina o routeBasePath para ser '/' para indicar que é o caminho raiz.
module.exports = { // ... presets: [ [ '@docusaurus/preset-classic', { docs: false, blog: { path: './blog', routeBasePath: '/', // Defina este valor como '/'. }, }, ], ],};caution
Não se esqueça de excluir a página inicial existente em ./src/pages/index.js ou então haverá dois arquivos mapeados para a mesma rota!
Você também pode adicionar descrição meta para a página de lista do blog para melhor SEO:
module.exports = { // ... presets: [ [ '@docusaurus/preset-classic', { blog: { blogTitle: 'Docusaurus blog!', blogDescription: 'A Docusaurus powered blog!', }, }, ], ],};Vários blogs#
Por padrão, o tema clássico pressupõe apenas um blog por site e, portanto, inclui apenas uma instância do plugin do blog. Se você gostaria de ter vários blogs em um único site, também é possível! Você pode adicionar outro blog, especificando outro plugin no plugin opção para docusaurus.config.js.
Defina o routeBasePath para a rota de URL na qual você deseja que seu segundo blog seja acessado. Observe que o routeBasePath aqui deve ser diferente do primeiro blog ou pode haver uma colisão entre itens! Além disso, defina o caminho para o diretório que contém as entradas do seu segundo blog.
Como documentado para plugins de multi-instância, você precisa atribuir um id exclusivo para os plugins.
module.exports = { // ... plugins: [ [ '@docusaurus/plugin-content-blog', { /** * Obrigatório para qualquer plugin multi-instância */ id: 'second-blog', /** * Rota de URL para a seção do blog do seu site. * * NÃO * inclua uma barra final. */ routeBasePath: 'my-second-blog', /** * Caminho para os dados no sistema de arquivos relativo ao diretório do site. */ path: './my-second-blog', }, ], ],};Como exemplo, nós hospedamos um segundo blog aqui.