Olá a todos, estou começando a desenvolver coisas para o Discourse e estou trabalhando em um componente de tema.
Link: GitHub - NateDhaliwal/discourse-persistent-banner: A theme component for Discourse that cannot be closed by the user.
Ao colocá-lo no Theme Creator, as configurações não aparecem, embora eu tenha um settings.yml. Alguma ideia?
Moin
Setembro 20, 2024, 8:28am
2
Você vê alguma mensagem de erro no criador de temas?
Eu acho que você tem que usar as mesmas aspas no início e no fim.
Isso também pode ser um problema. Eu tentaria default: "".
Talvez você queira adicionar “block” às escolhas. Caso contrário, você terá que usar o botão reverter para escolhê-lo novamente.
Opa, acabei de perceber que estava clicando em ‘Criar novo’ em vez de importá-lo…
Mas agora, quando tento usar a URL, diz que about.json é inválido ou não existe, perguntando se é um tema.
About.json:
{
"name": "Persistent banner",
"about_url": "https://meta.discourse.org/t/discourse-persistent-banner/330575",
"license_url": "https://github.com/NateDhaliwal/discourse-persistent-banner/blob/main/LICENSE",
"component": true,
"theme_version": "5.0.0",
"authors": "NateDhaliwal"
}
Há algo errado?
merefield
(Robert)
Setembro 20, 2024, 10:48am
4
Vírgula ausente após a URL da licença.
@merefield A versão estaria entre \"\"?
merefield
(Robert)
Setembro 20, 2024, 10:58am
6
Provavelmente isso também. Apenas olhe os exemplos.
Obrigado! Um último, não consigo exibir a variável.
https://github.com/NateDhaliwal/discourse-persistent-banner/blob/main/common/header.html
Foi porque não a inicializei corretamente? Tentei seguir o guia…
Eu teria que usar
import Component from "@glimmer/component";
export default class PracticeComponent extends Component {
get bannerLinks() {
return JSON.parse(settings.banner_links);
}
}
então?
merefield
(Robert)
Setembro 20, 2024, 11:13am
10
Olhe para os bilhões de exemplos
merefield
(Robert)
Setembro 20, 2024, 11:22am
11
Você só precisa usar um arquivo gjs se precisar processar coisas com javascript, caso contrário, um arquivo de modelo hbs pode ser suficiente. Experimente.
Não tenho certeza se estou indo na direção certa.
Criei javascripts/persistent-banner.hbs com isto:
https://github.com/NateDhaliwal/discourse-persistent-banner/blob/main/javascripts/persistent-banner.hbs
Mas nada aparece. Tentei colocá-lo em lugares diferentes, ainda não funciona.
Tentei olhar o exemplo, mas muitos não parecem ajudar.
Algum conselho?
Moin
Setembro 21, 2024, 11:51am
13
Em qual saída de plugin você deseja colocar seu banner?
Dê uma olhada em Using Plugin Outlet Connectors from a Theme or Plugin
Você pode usar https://meta.discourse.org/t/add-a-featured-topic-list-to-your-discourse-homepage/132949?u=moin como um exemplo
Você pode usar o (deprecated) Plugin outlet locations theme component para encontrar os nomes e locais das saídas de plugin. “above-main-container”, por exemplo, é o topo acima da lista de tópicos, mas não acima da barra lateral.
Observar o código de um Theme component que adiciona algo semelhante também é uma ótima maneira de aprender.
merefield
(Robert)
Setembro 21, 2024, 11:57am
14
Você não precisa e não deve colocar tags de script em arquivos hbs. Elas devem ser limitadas ao conteúdo do template.
Não tente adivinhar, leia os guias:
There's a new component API in Octane! For this section, we'll be focusing on the differences between the new style, known as Glimmer components, and classic components, and how to upgrade. "Classic" components refer to older-style components that do...
Então… consegui fazer funcionar sem usar um arquivo hbs, mas em vez disso usando a tag <script> com handlebars, e agora funciona.
Eu o uso assim por enquanto, mas continuarei tentando usar um arquivo hbs em vez disso.
Lilly
Setembro 22, 2024, 3:24am
16
Criei um pull request rápido para você ver a forma correta de dividir os arquivos. Sinta-se à vontade para mesclar ou apenas dar uma olhada no branch .
main ← Lillinator:split-into-handlebars-files
opened 03:22AM - 22 Sep 24 UTC
split into the handlebars file for you :)
also removed the header.html file
Muito obrigado! Funciona agora!
Lilly
Setembro 22, 2024, 3:15pm
18
Sem problemas, Nate. Continue experimentando, lendo e olhando outros exemplos. Em pouco tempo, você será muito melhor do que eu nessas coisas de desenvolvimento