Blog de Landing Pages ✈️

Funciona, mas não é mais mantido [julho de 2022]

Agora você pode usar o Plugin Landing Pages para criar um blog com o Discourse :tada:. Defina uma categoria como seu blog, e a primeira postagem de cada tópico nessa categoria terá sua própria página de blog e aparecerá em uma página de lista de postagens do blog.

Screen Shot 2021-05-13 at 5.04.18 PM

Este projeto foi um esforço conjunto entre @meghna e eu. Todo o belo trabalho de design é dela. Se você gostou do design deste blog, não deixe de conferir os Temas do Discourse dela. Qualquer bug que você encontrar na funcionalidade é minha :slight_smile:

Obter o código

GitHub-Mark-64px Plugin Landing Pages
GitHub-Mark-64px Blog Landing Pages
GitHub-Mark-64px Blog Landing Theme

Veja em ação

try.thepavilion.io/blog

Por favor, note que todo o conteúdo do blog e exibido nas capturas de tela neste post é do The Conversation, e usado sob a Licença Creative Commons utilizada por esse site. Todo o conteúdo pertence aos seus autores originais e é usado apenas para fins de demonstração.

Como configurar

Siga estes passos na ordem:

  1. Instale o Plugin Landing Pages (como instalar um plugin no Discourse).
  2. Instale o Blog Landing Theme, (como instalar um tema no Discourse).
  3. Configure o Blog Landing Pages como seu repositório de landing pages.
  4. Na interface de administração do Landing Pages, altere a categoria da página “Blog” para a categoria que você deseja usar para rodar seu blog.

É isso! A primeira postagem de cada tópico nessa categoria agora será uma postagem no seu blog :slight_smile:

Restringir postagens aos colaboradores

Provavelmente você desejará restringir as postagens nessa categoria a um grupo de colaboradores do blog. Se você não tem certeza de como fazer isso, aqui está um guia rápido:

  1. Crie um grupo de usuários, por exemplo, “Contribuidores”, acessando /groups e clicando em “New Group”.
  2. Adicione usuários ao grupo (“Add Members” no canto superior direito).
  3. Nas configurações de “Segurança” da categoria do blog, remova a permissão “Criar” de “Todos” e adicione seu grupo de Contribuidores.

Agora apenas seus colaboradores podem postar no seu blog, mas todos podem comentar nas postagens.

O que torna isso diferente de outras soluções de blog?

Existem algumas excelentes soluções existentes para rodar um blog dentro ou ao lado do Discourse, incluindo:

Isso é um pouco diferente, pois é um conjunto totalmente separado de páginas que não fazem parte do aplicativo cliente do Discourse, mas ainda usa o mesmo servidor. Isso lhe dá algumas vantagens em relação a rodar um blog separado (por exemplo, no Wordpress) ou usar uma categoria do Discourse diretamente (por exemplo, com um componente de tema), incluindo:

  • Você pode criar conteúdo e permitir que os usuários respondam no Discourse, mas ter um ambiente de blog dedicado para leitura e compartilhamento. Os leitores do seu blog sentirão que estão lendo um blog, e não uma postagem de fórum.
  • Você tem um único sistema de contas de usuário (do Discourse).
  • Você pode usar grupos do Discourse para restringir o acesso ao blog.
  • Você pode fazer com que postagens do Discourse apareçam como comentários no seu blog sem configuração adicional.
  • Você recebe um tema de blog responsivo e bonito pronto para uso.
  • Você só precisa configurar e pagar por um servidor.
  • O blog não precisa carregar seu fórum para funcionar, então ele pode carregar rapidamente.
  • Você pode facilmente manter suas páginas de blog (e tema) sob controle de versão.
  • Você recebe um e-mail de notificação de “Nova Postagem no Blog” bem formatado (veja abaixo).
  • Você pode gerenciá-lo facilmente junto com qualquer outra landing page que precisar usando o Plugin Landing Pages.

No entanto, embora o Blog Landing Pages tenha algumas vantagens claras, ele não será a melhor solução de blog comunitário para todos. Você deve testar as diferentes soluções e ver qual funciona para você.

O que significa “Inscrever-se” no blog?

Se você estiver logado e clicar no botão “Inscrever-se”, verá um modal (se você não estiver logado, será redirecionado para o login do Discourse).

Se você marcou a caixa ao lado de “Inscrever-se nas postagens de [nome do site]” e enviou o formulário, você será automaticamente definido como “Acompanhando Primeira Postagem” para a categoria do blog. Isso significa que você receberá uma notificação por e-mail toda vez que houver uma nova postagem nessa categoria, como se você estivesse inscrito em um blog!

Você também pode definir suas notificações para a categoria do blog como “Acompanhando Primeira Postagem” da maneira normal (no Discourse) e isso terá o mesmo efeito. “Acompanhar” a categoria (onde você recebe um e-mail para cada postagem, incluindo respostas) também conta como estar inscrito.

As notificações por e-mail para uma categoria de blog são um pouco especiais. Primeiro, a menos que você tenha feito a postagem, você sempre receberá uma notificação por e-mail se estiver inscrito, mesmo que tenha visitado o site recentemente. Segundo, elas são projetadas para parecer um e-mail de postagem de blog.

Planejamos permitir que um administrador do site edite o HTML do e-mail de postagem de blog na interface de administração do Landing Pages em um futuro próximo. Note que se você estiver “Acompanhando” a categoria do blog, apenas a notificação por e-mail para a primeira postagem de cada tópico será diferente. Notificações para respostas parecerão notificações normais do Discourse.

Além do blog

Você pode usar a funcionalidade descrita acima para criar um conjunto de landing pages para qualquer conteúdo, assim como o Wordpress é uma engine de blog que você pode usar para exibir outros tipos de conteúdo (não-blog). Você pode usar uma categoria para gerenciar um conjunto de produtos, lugares ou pessoas e obter automaticamente tanto uma landing page quanto um tópico de discussão para o conteúdo, apenas fazendo uma única postagem no Discourse.

Qualquer desenvolvedor que saiba um pouco de Ruby on Rails pode alcançar qualquer um desses casos de uso adicionais usando este sistema. Você não precisa saber como o Discourse funciona. Como essas páginas de blog fazem parte do plugin Landing Pages, você também tem acesso a todos os modelos existentes nesse plugin, incluindo formulários de contato, cabeçalho, rodapé, listas de tópicos e perfis de usuário. Você pode ler mais sobre esses modelos e outros na documentação do plugin.

41 curtidas

Looks great, good job! Is the Blog Landing Theme a requirement? Would it be possibel in that case to have it as a component (since those who already have another/customized theme might want to stick with it)?

2 curtidas

The Blog Landing Pages, and the functionality in the Landing Pages Plugin they rely on, are both designed to work with any theme :slight_smile: You can customise this however you like.

It doesn’t need to be active on your Discourse site to work, it just needs to be installed, then selected in the relevant page in the Landing Pages Admin UI. This is what the theme settings look like on try.thepavilion.io (you can see the page settings in the OP)

3 curtidas

Epic! Excited to try this out. Thanks for this :slight_smile:

2 curtidas

:exploding_head:

Isso é realmente legal. Me fez repensar toda a minha abordagem. Obrigado! :laughing:

2 curtidas

Isso é ótimo!

Para personalizar, devo fazer um fork do repositório para inserir as informações do meu site? Ou existe uma maneira melhor de fazer isso?

2 curtidas

Obrigado, @sethm. Sim, o Blog Landing Theme e as Blog Landing Pages são destinados como modelos, então você pode:

  • importá-los diretamente para sua instância conforme descrito acima;
  • fazer um fork deles; ou
  • baixá-los e modificá-los como faria com um modelo para WordPress, Ghost etc.
3 curtidas

Existe alguma maneira de ter um subconjunto do conteúdo do Discourse visível publicamente (como o conteúdo deste blog) em vez de exigir registro/login? Obrigado.

–Peter

1 curtida

Olá Peter, sim, por padrão o conteúdo no Discourse é publicamente visível. Se não for, significa que você tem a configuração do site login obrigatório habilitada. Você pode então controlar a visibilidade de categorias específicas usando permissões específicas da categoria (nas configurações da categoria). Você pode ver uma captura de tela das configurações de acesso específicas da categoria acima.

1 curtida

Obrigado, mas não vejo a captura de tela das configurações de acesso específicas da categoria?

1 curtida

Alguma ajuda?
Talvez as configurações específicas da categoria não apareçam a menos que eu remova a opção “login required”?
Mas eu não quero remover isso até que eu tenha as categorias definidas como “public” ou “login required”…
Obrigado.

–Peter

1 curtida

Você deve conseguir visualizar as permissões da categoria na aba Segurança da chave inglesa de administrador na página da categoria:

Espero que ajude. :slightly_smiling_face:

2 curtidas

Ah! Obrigado.
Então, definir todas as categorias e usuários atuais para o nível de confiança 2, e a nova categoria que quero que seja pública para o nível de confiança 0, e alterar o login necessário, deve resolver? Ou essa lógica está errada?

–Peter

1 curtida

Se você quiser que a categoria do blog seja visível para pessoas anônimas e também para detentores de contas, você desejará que o grupo Todos tenha pelo menos ‘Ver’.

E então defina as outras categorias para serem pelo menos trust_level_0, para que as pessoas precisem ter uma conta para visualizar e interagir com os tópicos nelas.

1 curtida

Obrigado, funcionou. Agradeço a ajuda.

2 curtidas

Preciso de um pouco de ajuda para entender este plugin. Por um lado, você diz que pode

Definir uma categoria como seu blog, e a primeira postagem de cada tópico nessa categoria terá sua própria página de blog e aparecerá em uma página de lista de postagens do blog.

e por outro lado

  1. Configure as Páginas de Destino do Blog como seu repositório de páginas de destino.

Estou confuso. Posso executar um blog com minhas postagens do Discourse sem um repositório git e quaisquer arquivos *html.erb?

1 curtida

O conteúdo do blog é extraído de posts do Discourse. O layout do blog é gerenciado pelos arquivos HTML, que podem estar no repositório Páginas de Destino do Blog.

Este plugin não é como o Hugo, onde você cria posts de blog em markup. Embora integrar isso com o Hugo seria legal, poderíamos tentar isso em algum momento (cc @jumagura)

3 curtidas

Estou executando um fórum com o Discourse há alguns meses, então ainda sou bem novo nisso. Já instalei um plugin antes, mas quando tentei instalar o Landing Pages Plugin hoje à noite, recebi um erro quando o aplicativo foi reconstruído e ele não inicializou. Talvez haja um problema de compatibilidade ou versão com algo, mas não tenho certeza por onde começar. Alguém pode me dar uma dica? Eu olhei o log, mas não consigo identificar qual pode ser o problema.

Esta é a última parte dos resultados da reconstrução:

Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' falhou com retorno #<Process::Status: pid 364 exit 1>
Localização da falha: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec falhou com os parâmetros {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap falhou com código de saída 1
** FALHA AO INICIALIZAR ** por favor, role para cima e procure por mensagens de erro anteriores, pode haver mais de uma.
./discourse-doctor pode ajudar a diagnosticar o problema.
fb680c9c3b46dcd068abe877ed4187c730351c10139cc3eda2a8b7202822bf07
saul@discourseonubuntu2004-s-1vcpu-2gb-intel-lon1-01:/var/discourse$
saul@discourseonubuntu2004-s-1vcpu-2gb-intel-lon1-01:/var/discourse$

Obrigado por qualquer ajuda.

1 curtida

Alguém pode, por favor, verificar este plugin. Tenho o mesmo problema que o usuário acima. Recebo alguns erros ao tentar compilá-lo, aparentemente ele está quebrado desde a versão 2.9.0 beta 4 e superiores.

Eu poderia fornecer alguns logs, mas seria melhor se o criador verificasse uma instalação limpa do Discourse e então tentasse compilá-lo, porque testei isso em uma instalação existente do Discourse, bem como em uma nova, e sempre falha ao compilar.

Segui exatamente os passos fornecidos na postagem inicial.

  1. Instale o Plugin de Páginas de Destino (como instalar um plugin no Discourse) .
  2. Instale o Tema de Página de Destino de Blog , (como instalar um tema no Discourse) .
  3. Configure as Páginas de Destino de Blog como seu repositório de páginas de destino .
  4. Na UI de Administração de Páginas de Destino, altere a categoria da página “Blog” para qualquer categoria que você queira usar para executar seu blog.
1 curtida

Atualizarei este plugin para ser compatível com o Discourse mais recente na próxima semana

4 curtidas