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
20 Setembro , 2024 08:28
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)
20 Setembro , 2024 10:48
4
Vírgula ausente após a URL da licença.
@merefield A versão estaria entre \"\"?
merefield
(Robert)
20 Setembro , 2024 10:58
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)
20 Setembro , 2024 11:13
10
Olhe para os bilhões de exemplos
merefield
(Robert)
20 Setembro , 2024 11:22
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
21 Setembro , 2024 11:51
13
Em qual saída de plugin você deseja inserir 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 exemplo.
Você pode usar (deprecated) Plugin outlet locations theme component para encontrar os nomes e localizações das saídas de plugin. “above-main-container”, por exemplo, é o local no topo, acima da lista de tópicos, mas não acima da barra lateral.
Analisar o código de um Customization > Theme component que adiciona algo semelhante também é uma ótima maneira de aprender.
merefield
(Robert)
21 Setembro , 2024 11:57
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
(Lillian )
22 Setembro , 2024 03:24
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
(Lillian )
22 Setembro , 2024 15:15
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