Studio
Um studio local para explorar conteúdo, buscar em todos os documentos, visualizar o corpo dos arquivos MDX, inspecionar traduções e excluir entradas com segurança.
View as Markdownscribe studio # http://127.0.0.1:3600
scribe studio --port 4000
O studio é uma ferramenta de desenvolvimento local. Ele usa HTML renderizado no servidor, não exige etapa de build ou autenticação e lê sua árvore de trabalho em tempo real. Enquanto agentes e pessoas editam arquivos, o studio é o lugar onde os humanos visualizam e verificam tudo o que o Scribe gerencia. Você pode explorar coleções, inspecionar entradas com as relações resolvidas e pré-visualizações de assets, identificar imagens quebradas ou ausentes e responder "onde isso é usado?" antes de alterar qualquer coisa. Ele também inclui o painel de tradução existente (cobertura, lista de trabalho e snapshots por documento; consulte translation).
Navegador de coleções
Em /types/:typeId, a barra lateral lista cada tipo de conteúdo, mostrando a contagem de entradas e um selo agregado de problemas. A tabela de entradas exibe os slugs, uma seleção de campos principais derivados do schema (enums e relações em formato de chips), pontos de status de tradução e selos de validação individuais.
Os filtros de campo vêm da introspecção do schema e ficam nos parâmetros de query, garantindo que as URLs sejam compartilháveis e renderizadas no servidor. Campos enum e de relações viram menus de seleção, booleanos viram botões de alternância e strings usam correspondência de texto.
Qualquer tipo com pelo menos um campo de asset permite alternar a tabela para uma grade de cards em galeria. Cada card exibe a imagem principal do asset, o slug, campos-chave e selos. Os filtros funcionam da mesma forma. Esse é o seu painel de controle de qualidade para imagens geradas.
Inspetor de entradas
O caminho /types/:typeId/:enSlug renderiza os campos de acordo com o tipo inspecionado:
- translatable: o valor acompanhado de um seletor de idioma (dados da store). O fallback para inglês fica em destaque quando um idioma não possui tradução.
- structural: apenas o valor em texto simples.
- relation: um link clicável para a entrada de destino. Referências órfãs exibem um selo vermelho.
- asset: uma prévia da imagem com URL resolvida, tamanho do arquivo e dimensões. Um arquivo ausente aciona um selo vermelho.
- Used by: uma seção de referência reversa que lista todas as entradas de qualquer tipo cujas relações apontam para cá.
- Body: um controle que alterna entre Raw e Preview (
?body=preview). O modo Preview renderiza o Markdown e o GFM corretamente e exibe componentes JSX desconhecidos como caixas rotuladas com suas propriedades. Além disso, tokens de relação viram links clicáveis (referências quebradas ficam bem visíveis) e tokens de assets aparecem como imagens reais. Um link "ver no site" fica disponível para tipos roteáveis.
As setas direcionais movem entre as entradas. As teclas ArrowLeft e ArrowRight navegam para a entrada anterior ou seguinte do mesmo tipo usando a ordem padrão da coleção (sem retorno cíclico), preservando o idioma atual e os parâmetros de query da visualização. As teclas são ignoradas quando o foco está em um campo de formulário.
Navegador de assets
A rota /assets mostra uma grade de miniaturas para cada raiz gerenciada. Cada asset lista sua prévia, caminho, tamanho, dimensões e uma lista referenced by com cada entrada e campo que apontam para ele, calculada em tempo real no runtime em memória. Selos alertam para assets sem referência (possíveis órfãos), ausentes mas referenciados, muito grandes (acima do maxKB do campo) e desvios de formato. Veja assets para entender o sistema de campos subjacente.
Busca global
O endpoint /search?q= executa uma busca de substring, sem diferenciar maiúsculas de minúsculas, nos slugs em inglês, em cada valor do frontmatter e no corpo bruto dos arquivos MDX. Um formulário de busca está presente em todas as páginas. Os resultados são agrupados por tipo e mostram um trecho destacado, com limite de 20 ocorrências por tipo.
Excluindo entradas
A barra de ferramentas do inspetor tem um botão Delete vermelho de alerta. Ele abre uma página de confirmação que exibe o plano de exclusão completo em seções (exclusões em cascata, desconexões, assets afetados, contagem da store por idioma e possíveis bloqueios). Em seguida, você vê um botão vermelho de confirmação (ou apenas os bloqueios sem a opção de confirmar, caso o plano seja impedido). Ao confirmar, a ferramenta executa estritamente o plano previsto: apaga o arquivo fonte, os assets atrelados, traduções armazenadas, snapshots e aplica as reescritas de desconexão, nada além disso. O modo onTargetDelete de uma relação (restrict, detach ou cascade) e o modo onDelete de um asset determinam a ação do plano. O mesmo plano está disponível na linha de comando através do scribe delete. Essa é a única rota do studio que realiza mutações de estado e funciona exclusivamente no localhost.
O que o studio não faz
Nada de edição de conteúdo, ativação de traduções, upload de imagens, autenticação ou renderização real de componentes MDX. A edição continua acontecendo no seu editor de código e no git. O studio serve apenas para revisão.