Pular para o conteúdo
Navegar na documentação

Criar uma Collection

Crie a página-mãe e uma pasta _nome na mesma pasta:

Content/Pages/blog/
├── index.blade.php
├── meta.yaml
└── _posts/
    ├── _collection.yaml
    ├── primeiro.mdx
    └── segundo.mdx

Configure Content/Pages/blog/_posts/_collection.yaml:

type: article
mdx_source: true
defaults:
  sitemap:
    priority: 0.7
    changefreq: monthly

Crie um item:

---
title: Primeiro post
description: Um item mínimo de Collection.
---
# Primeiro post

Conteúdo do post.

O segmento _posts não entra na URL; o item acima gera /blog/primeiro. Liste os itens em Content/Pages/blog/index.blade.php:

Com mdx_source: true, o build também publica o arquivo original em /blog/primeiro.mdx, incluindo o front matter, e adiciona essa URL ao llms.txt. Remova a chave quando a fonte do item não deve ser pública.

@extends('layouts.app')

@section('content')
    <x-blocks.prose>
        <h1>{{ $meta->title }}</h1>
        <ul>
            @foreach ($items['posts'] ?? [] as $post)
                <li><a href="{{ $post->path }}">{{ $post->title }}</a></li>
            @endforeach
        </ul>
    </x-blocks.prose>
@endsection

Adicione o meta.yaml da página-mãe com title e sitemap. Nomes de Collection devem ser globalmente únicos e Collections não devem ser aninhadas.

Para publicar feeds Atom e RSS dos itens MDX indexáveis, habilite o recurso no _collection.yaml:

type: article
feed: true

Os arquivos ficam junto à página-mãe, em /blog/atom.xml e /blog/rss.xml no exemplo acima. O título e a descrição do feed vêm da página-mãe; itens Blade são ignorados. A página-mãe anuncia os dois feeds no <head>.

Para o modelo de agregação, leia Collections. Para tipos, precedência e erros, consulte a Referência de Collections.