Configurações não aparecem

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?

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:

Há algo errado?

Vírgula ausente após a URL da licença.

:roll_eyes:
@merefield A versão estaria entre \"\"?

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…

  1. não use “header.html”, use um componente adequado (preferencialmente um arquivo .gjs, mas .hbs pode ser suficiente).
  2. use o helper html-safe sempre que estiver gerando HTML a partir de configurações ou variáveis.

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?

Olhe para os bilhões de exemplos :stuck_out_tongue_winking_eye:

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?

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.

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:

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.

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.

Muito obrigado! Funciona agora!

Sem problemas, Nate. Continue experimentando, lendo e olhando outros exemplos. Em pouco tempo, você será muito melhor do que eu nessas coisas de desenvolvimento :smiley: :raised_hands:

Obrigado pelo incentivo!