Este guia abrange como usar o recurso de Publicação de Página (Page Publishing) no Discourse. Este recurso permite que usuários com nível de acesso Staff convertam um tópico em uma página estática autônoma com estilo personalizado. Exemplos incluem as páginas de Termos de Serviço e Política de Privacidade.
Nível de usuário necessário: Staff
Publicando páginas estáticas no Discourse
A Publicação de Página (Page Publishing) permite que usuários Staff criem páginas estáticas autônomas a partir de tópicos. Isso é semelhante ao processo de criação de páginas de Termos de Serviço ou Política de Privacidade.
Sumário
Esta documentação abordará:
- Habilitando a Publicação de Página
- Publicando um tópico como uma página
- Despublicando um tópico
- Problemas comuns e soluções
- FAQs
- Recursos adicionais
Habilitando a Publicação de Página
- Navegue até
Admin>Settings(Configurações).- Ative a configuração
enable page publishing(habilitar publicação de página).
Habilitando a publicação de página quando o login é necessário
Para permitir que as páginas publicadas sejam visíveis mesmo quando um usuário não está logado:
- Ative a configuração
show_published_pages_login_requiredemAdmin>Settings(Configurações).
Publicando um Tópico
Vá para a primeira postagem de um tópico público e selecione o ícone de reticências (
...).
Selecione o ícone de chave inglesa.
Escolha a opção "Page Publishing" (Publicação de Página).
Um diálogo modal aparecerá, permitindo que você confirme o slug (que pode ser pré-preenchido a partir do título da postagem) e visualize o URL da página publicada.
Para permitir a publicação de páginas, é necessário desativar as configurações de site de upload seguro.
Para sites hospedados, uploads seguros são limitados ao plano Enterprise.
Tópico Publicado
Se a opção
Public(Público) estiver marcada, um rótulo public aparecerá.
Um tópico publicado mostrará um aviso abaixo do título permitindo acesso às suas configurações de publicação.
Página Publicada
Despublicando um Tópico
Selecione
Publishing Settings(Configurações de Publicação) sob o aviso.
Clique em Unpublish (Despublicar)
A página é despublicada.
Problemas comuns e soluções
Não consigo ver páginas publicadas quando deslogado
Certifique-se de que a configuração
show_published_pages_login_requiredesteja ativada emAdmin>Settings(Configurações).Adicionando um cabeçalho do Discourse a páginas publicadas
Atualmente, as páginas estáticas são projetadas para serem mínimas e não incluem o cabeçalho e rodapé típicos do Discourse.
FAQs
Posso tornar uma página de FAQ ou Sobre pública?
Você pode criar um novo tópico com o conteúdo desejado e publicá-lo como uma página. Altere os links nas configurações do site para apontar para essas novas páginas.
Como posso personalizar a aparência de uma página publicada?
Use a estrutura do documento HTML e os seletores CSS correspondentes para aplicar estilos personalizados em
Admin>Customize(Personalizar) >Themes(Temas) >CSS.Recursos adicionais
Ainda preciso testar isso em primeira mão, então o que segue pode não estar baseado na realidade, mas:
Parece-me que esse modelo de permissão cria um cenário em que você sempre vê duas cópias do conteúdo das páginas: uma na categoria relevante do Discourse e outra nas próprias páginas publicadas. Isso, claro, parece redundante se você deseja publicar páginas para o público geral que sejam semelhantes ou idênticas à base de usuários do seu Discourse.
Por outro lado, se as páginas tivessem a opção “legível por todos” disponível, você poderia restringir quem pode ver/editá-las a um pequeno grupo, e o único lugar onde o conteúdo estaria disponível para outros usuários do Discourse seria nos links publicados.
(Estou pensando em um caso de uso de um “site de documentação” aqui.)
Caso contrário, estou bastante animado para testar as coisas!
Coisa incrível, e obrigada novamente por ouvir seus usuários. Adoro a vibe de ‘vamos melhorar isso para todos nós’ que o Discourse tem! Vamos fazer uso intenso disso.
Ao discutir um caso de uso (corrigir uma instalação que deu um pouco errado), outro usuário apontou um detalhe final que poderia ser adicionado ao bolo:
Ei, existe alguma maneira de incluir a capacidade de tornar /faq e /about públicos também, já que atualmente eles estão ocultos em sites que exigem login? Claro, podemos usar a funcionalidade existente que você acabou de lançar para /faq criando a nossa própria, alterando o link nas configurações e vinculando explicitamente a ela. No entanto, isso não fica bonito e a navegação existente para ela permanece oculta. E, claro, não podemos fazer isso de forma alguma com /about.
Algo que ficaria ótimo com esse recurso seria tornar as publicações compatíveis com o Onebox, para que as pessoas pudessem compartilhar o conteúdo facilmente.
Peço desculpas pela minha ignorância, pois sou muito iniciante no mundo do HTML/CSS… no entanto, como aplicaríamos nossas escolhas de cores do tema às páginas publicadas? No seu nível mais simples, gostaria de usar um fundo escuro com texto branco para que as páginas publicadas ofereçam a mesma experiência de modo escuro que ao acessar nossos fóruns.
Isso já está incluído no produto ou preciso mexer com HTML/CSS? Se for o segundo caso, alguém poderia me dar algumas dicas na direção certa? Obrigado!
Você pode transformar isso em um pedido de recurso separado, por favor? Isso não está relacionado à publicação de páginas, no sentido de que não precisaria alterar nada relacionado à publicação de páginas para torná-lo possível. Concordo que seria melhor se todas essas páginas “estáticas” tivessem um comportamento mais ou menos semelhante, mas existem várias soluções aqui (não fazer nada? adicionar configurações do site? migrar essas páginas para a publicação de páginas?), então talvez queiramos ter um tópico dedicado para isso.
GTM não carregado nas páginas publicadas? Seria legal.
Hmm, esse é um ponto muito bom.
Apenas tentando pensar em uma solução aqui… funcionaria se type="text/javascript" e type="text/discourse-plugin" fossem tratados de forma diferente? A API precisa do último, certo?
Sim, acredito que já suportamos a presença de text/javascript nos campos do tema, portanto certamente existem soluções nessa área.
Isso seria ótimo.
Então, atualmente é impossível ter páginas publicadas responsivas, e este site quer especificamente:
- Imagens disponíveis ao compartilhar em mídias públicas, e
- Imagens responsivas/redimensionáveis exibidas, especialmente em dispositivos móveis—ah, os dispositivos móveis poderiam apenas redimensionar a imagem com CSS—isso deve funcionar, certo?
+1 por ter o cabeçalho do Discourse nas páginas publicadas. Estou sentindo falta do logotipo do meu site, dos links personalizados do cabeçalho e do meu amado menu hambúrguer ![]()
Outra estranheza: nos posts, as imagens com lightbox abrem em um pop-up legal, enquanto nas páginas publicadas, elas abrem em uma nova aba…
Acho que o que é necessário é um conjunto de componentes de tema que adicionem isso. O último cliente que precisei atender queria que o criador do tópico fosse removido. Acho que é difícil adivinhar o que atenderá às necessidades das pessoas para isso!
Há atualmente algum esforço em andamento para adicionar suporte a Javascript “simples” (não via API) em páginas publicadas? Ou devemos esquecer isso no curto e médio prazo?
Posso exibir JSON externo não-Discourse nesta página? Como não podemos usar código PHP aqui e o Discourse remove a maioria do HTML, não sei como fazer isso.
Tenho um problema com uma página publicada: o botão para copiar o conteúdo do bloco de código não está visível na página publicada. Captura de tela: Screenshot by Lightshot. Passo o mouse sobre o bloco, mas o botão não aparece. Quando estou logado, tudo funciona normalmente.
Alguém consegue reproduzir o problema? Há alguma solução?
Obrigado @riking!
Realmente parece que o text/javascript “comum” está sendo executado nas páginas publicadas quando está no header ou footer de um componente do tema.
Haha! Então parece que há uma solução meio gambiarra para fazer alguns componentes de tema funcionarem com a publicação de páginas.
Estou investigando a adição de algum cabeçalho/rodapé nas páginas publicadas, e os componentes de tema parecem ser o caminho a seguir. Mas parece ruim implementar algo que possa potencialmente quebrar em um futuro próximo.
@riking, parece que o tipo text/javascript em header ou footer funcionando em páginas publicadas foi não intencional. Isso será corrigido ou utilizado para estender as páginas publicadas?
@syl, autor do DiscPage, mencionou a possibilidade de reimplementar o plugin DiscPage usando a funcionalidade de Publicação de Página. Você ainda tem isso em mente, @syl? O que você acha que seria o caminho de menor resistência para integrar ambas as funcionalidades, @riking?
Infelizmente, o recurso “Publicação de Páginas” não atende às minhas necessidades. Para que eu possa usá-lo, precisaria que as páginas publicadas:
- fossem exibidas dentro do layout normal do Discourse, ou seja, com o cabeçalho padrão do Discourse (assim como os Termos de Serviço e a Política de Privacidade), e
- fossem renderizadas como tópicos normais (decorados), ou seja, com suporte a bbcode e plugins.
Enquanto isso, utilizei o recurso de personalização padrão do Discourse:
- Identifique o elemento adicionado, por exemplo, com a classe CSS
published-page-footer-links. - Personalize o CSS para ocultar esse elemento por padrão e mostrá-lo apenas nas páginas publicadas.
- Adicione o elemento no espaço
Footer.
2. No CSS, adicione:
/* Mostrar links do rodapé apenas em páginas publicadas */
.published-page-footer-links { display: none; }
.published-page .published-page-footer-links { display: block;}
3. No Footer, adicione:
<nav class="published-page-footer-links">
Olá! Este é o rodapé para páginas publicadas!
</nav>











