Blog
#
Configuração inicialPara 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 postsPara 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çalhoO ú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 stringlabel
epermalink
para 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 postUse 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.
#
FeedVocê 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.xml
e para o Atom:
https://{your-domain}/blog/atom.xml
#
Tópicos avançados#
Modo somente blogVocê 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 blogsPor 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.