¿Cómo reabrir el widget header-contents?

¡Hola! Soy un principiante, así que espero tu ayuda. Quiero cambiar el contenido en <header>...</header>. Cuando abro los archivos fuente, veo que el widget “header-content” dice:

createWidget("header-contents", {
   tagName: "div.contents.clearfix",
   template:hbs`
     {{home-logo attrs=attrs}}
     {{#if attrs.topic}}
       {{header-topic-info attrs=attrs}}
     {{/if}}
     <div class="panel clearfix" role="navigation">{{yield}}</div>
   `,
});

Escribo en common/head_tag.html


<script type="text/discourse-plugin" version="0.8.13">
     api.reopenWidget("header-contents", {
tagName: "div.contents.clearfix",
template:hbs`
<h1>¡Hola! ¡Ayúdame, por favor!</h1>
<div class="panel clearfix" role="navigation">{{yield}}</div>
`
});
</script>

Esto no funciona. Ayúdame, por favor.

1 me gusta

Hola, @Deomid_Fedorov, bienvenido a Meta :wave:

Si revisas la consola del navegador, verás algo como esto

ReferenceError: hbs no está definido

pero incluso si corriges eso, todavía tendrías problemas para que esto funcione porque las plantillas se supone que deben ser precompiladas en el servidor, no en el lado del cliente.

Tenemos muchas formas de personalizar la cabecera. Si me dices qué intentas hacer, probablemente pueda compartir una forma de lograr el resultado que deseas.

3 Me gusta

¡Saludos, Joe! Muchas gracias por tu respuesta. Quiero decir que me está empezando a gustar mucho Discourse, pero hay algunas dificultades con las que aún no he logrado lidiar. En general, tengo un gran deseo: quiero poder incrustar mi código html donde quiera, en cualquier etiqueta, y quiero poder eliminar algunos elementos que considero superfluos.

Leí la publicación Developing Discourse Themes & Theme Components
Sin embargo, estas instrucciones no fueron suficientes para resolver mis problemas.

Pasemos a ejemplos específicos:

  1. ¿Cómo incrusto mi código en la etiqueta <header> entre los bloques <div class="title"> y <div class="navigation">?
  2. ¿Cómo evito la generación del elemento <ul id="navigation-bar">?

Quiero advertir que mi conocimiento del inglés no es perfecto, por lo que puede haber errores en el texto. Espero tu comprensión.

1 me gusta

No te preocupes, podemos resolver esto.

Sé a qué te refieres aquí.

pero no estoy seguro a qué elemento te refieres aquí

¿Puedes añadir una captura de pantalla de dónde quieres añadir nuevos elementos?

Si tu sitio no necesita ese elemento, puedes ocultarlo con CSS. Algo como esto.

#navigation-bar {
  display: none;
}

Dicho esto, ese elemento ofrece a los usuarios una forma fácil de navegar entre los diferentes filtros para las listas de temas, y no recomiendo eliminarlo, especialmente en dispositivos móviles.

Sin embargo, tú conoces tu comunidad mejor que nadie. Así que, si te funciona, entonces… genial :+1:

2 Me gusta


Eso es lo que quiero decir. Necesito colocar mi bloque personalizado donde señalé con la flecha en la captura de pantalla.
Subo otra captura de pantalla para que puedas entender mejor qué resultado quiero obtener:

Gracias de nuevo por tu capacidad de respuesta. Tengo muy buenas habilidades de CSS. Sé que escribiendo display: none puedo ocultar el elemento. Pero me gustaría tener una experiencia más sólida. Me gustaría poder gestionar plantillas y widgets como un verdadero profesional. Supongo que hay una forma de hacerlo de manera más correcta. Por ejemplo, reescribir la plantilla o algo más.