The discussion revolves around the ProCourse Static Pages plugin, originally created by joebuhlig to allow Discourse admins to create static, non-discussion pages (e.g., FAQs, sales pages) using the familiar topic composer. The plugin was praised for its utility but later broke due to Discourse API deprecations, notably the removal of Discourse.Modeldavidnewkerk. TReKiE stepped in, fixed multiple issues (including admin panel crashes and broken UI elements), and maintained a functional fork TReKiE. Users requested enhancements like SEO meta fields Krischan, image uploads nexo, and support for external scripts 4ong. Some users noted the plugin doesn’t support anonymous access on private forums nathank, prompting HAWK to suggest using Discourse’s built-in “Page Publishing” feature instead, which is actively developed and supports styling via publish.scssSteven. Concerns were raised about the plugin’s maintenance status, with pfaffman recommending the core feature over a deprecated plugin. TReKiE eventually restored all functionality and improved group visibility in security settings TReKiE. Despite temporary GitHub account suspension TReKiE, the fork remains active. Some users successfully deployed static pages 在云端_裸奔. The thread ends with suggestions to rename or rebrand the fork for clarity thoka and to update the original post to reflect TReKiE as the current maintainer.
I’ve been doing freelance Discourse customization as my primary gig for almost a year at this point. And one of the most common questions I get is about static pages. “Can I just create a static sales page?” “Where’s a good place to put a FAQ without a discussion around it?”
You can likely argue the validity of these questions in most scenarios. The main response being “just close the topic.” But that doesn’t cut it for most. Thus, I decided to create this plugin to make it possible.
It’s pretty simple. You get a backend under Admin > Plugins to create, edit, and delete these pages as you like. It uses the same topic composer we’re used to. Once you have the page built, you can Enable it and share the link to the page wherever you like.
For a demo: LINK IS DEAD.
I should also note that styling is made easier with a class static-page in the wrapping div for the whole page. That way you can do whatever you want to the body of the page from a CSS standpoint in a theme.
Acho que estou com o mesmo problema — isso seria ótimo, mas preciso que as páginas sejam visíveis para anônimos, pois tenho um site privado e quero que algumas páginas estáticas sejam expostas ao público.
@joebuhlig - isso já foi perguntado algumas vezes neste tópico. Você tem alguma opinião sobre isso?
Concluí que o erro vem do código que usa Discourse.Model, que foi descontinuado (acredito que na versão atual do Discourse ele tenha sido completamente removido, daí o novo erro).
Corrigi o erro e enviei um Pull Request:
E parece que já foi mesclado… uhu! Agora você deve conseguir reinstalar o plugin.
Acho que o Joe não está mais mantendo seus plugins. Alguém precisará criar um PR.
Dito isso, estamos trabalhando atualmente em um recurso de página estática no núcleo. Ainda está em seus estágios iniciais, mas você pode experimentá-lo ativando a configuração enable page publishing nas configurações do seu site. Você pode criar uma página publicada abrindo o menu de ações do post em um tópico (selecione o botão … seguido pelo botão de chave de fenda).
Obrigado, Steven; após um breve teste, verifiquei que não é possível torná-los visíveis para anônimos em fóruns que exigem login. Que pena — era exatamente para isso que eu queria usá-los. Ainda assim, bem legal.
Parece que a única maneira de tornar mais conteúdo estático visível para usuários não logados é:
mantê-lo com exigência de login e usar as ferramentas existentes:
Isso. Sei que este plugin é principalmente para criar páginas estáticas. No entanto, digamos que você crie um aplicativo de calculadora que deseja incluir na página. A calculadora requer uma entrada do usuário. A página ainda tem código estático, mas atualizaria o resultado com base na entrada do usuário. Isso é possível usando este plugin ou é melhor apenas criar uma página externa em HTML/CSS com JavaScript?
Gostaria de usar um widget de terceiros em uma página estática. O JavaScript para isso deve ser inserido antes de </body>. Existe uma maneira de fazer isso – apenas nesta página estática específica? Obrigado pela ajuda!
Apenas compartilhando como consegui executar um script para as páginas estáticas:
<script type="text/discourse-plugin" version="0.8">
const { setDefaultHomepage } = require('discourse/lib/utilities');
const user = api.getCurrentUser();
if(!user) {
setDefaultHomepage('/page/welcome/1/'); // <--- definir URL da página inicial
}
api.onPageChange((url, title) => {
if(url.indexOf("/page/welcome") === 0) {
// fazer algo para esta página estática
}
});
</script>
Apenas uma esclarecimento: definir a página como inicial é totalmente opcional quando se trata de executar o script. Eu quis mostrar que também é possível fazer isso
Obrigado!
Você sabe como usar scripts externos (não do mesmo domínio) em uma página estática?
Sempre aparece: Content Security Policy: As configurações da página bloquearam o carregamento de um recurso inline ("script-src"). Origem: (function injectedScript() {...
De modo geral — qual é a melhor maneira de incorporar, por exemplo, uma loja virtual sem usar um iframe?
Exemplo de código:
Gostaria de trazer essa solicitação de volta à mesa. O plugin é ótimo, mas sempre que você compartilha uma página assim, ele mostra apenas os metadados padrão. Seria ótimo se você pudesse especificar o título, a descrição e uma imagem personalizada. O plugin ainda está em desenvolvimento ativo ou isso deveria ir para a categoria do marketplace? Obrigado!