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?

1 curtida

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.

2 curtidas

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.

4 curtidas

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

1 curtida

Provavelmente isso também. Apenas olhe os exemplos.

1 curtida

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.
2 curtidas

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?

1 curtida

Olhe para os bilhões de exemplos :stuck_out_tongue_winking_eye:

1 curtida

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.

1 curtida

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?

1 curtida

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.

2 curtidas

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:

3 curtidas

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.

1 curtida

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.

6 curtidas

Muito obrigado! Funciona agora!

1 curtida

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:

2 curtidas

Obrigado pelo incentivo!

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.