Calendario de Discourse (y evento)

Puedes usar lo que está abajo y modificar las primeras condiciones para especificar tus categorías, y para que el botón sea más visible, CSS lo hará: .btn.no-text.btn-icon.toolbar__button.link.custom-create-event-btn {
order: -1;
}

<script>(()=>{if(!(document.body.classList.contains("category-events")||document.body.classList.contains("category-event2")||document.body.classList.contains("category-event3")))return;const e=".d-editor-button-bar",t=".btn.no-text.fk-d-menu__trigger.toolbar-menu__options-trigger.toolbar__button.options.toolbar-popup-menu-options",n=".fk-d-menu__inner-content",o=".d-modal.fk-d-menu-modal",c=e=> {const t=e.querySelector('svg use[href="#calendar-day"]');return t?t.closest("button"):null},r=(e,t,n=4e3)=>new Promise((o,c)=>{const r=t(e);if(r)return o(r);const l=new MutationObserver(()=> {const n=t(e);n&& (l.disconnect(),o(n))});l.observe(e,{childList:!0,subtree:!0}),setTimeout(()=> {l.disconnect(),c()},n)}),l=(e=4e3)=> {const t=new MutationObserver(()=> {document.querySelector(o)&&t.disconnect()});t.observe(document.body,{childList:!0,subtree:!0}),setTimeout(()=>t.disconnect(),e)},s=e=> {if(e.querySelector(".custom-create-event-btn"))return;const o=document.createElement("button");o.className="btn no-text btn-icon toolbar__button link custom-create-event-btn",o.title="Create event",o.innerHTML='<svg class="fa d-icon d-icon-calendar-day svg-icon"><use href="#calendar-day"></use></svg>',e.appendChild(o),o.addEventListener("click",async()=> {const e=document.querySelector(t);if(!e)return;e.click();let o=document.querySelector(n);o||(await new Promise((e,t)=> {const c=new MutationObserver(()=> {o=document.querySelector(n)&&c.disconnect(),e()});c.observe(document.body,{childList:!0,subtree:!0}),setTimeout(()=> {c.disconnect(),t()},2e3)}));try{(await r(o,c)).click(),l()}catch{}})},u=new MutationObserver(()=> {const t=document.querySelector(e);t&&s(t)});u.observe(document.body,{childList:!0,subtree:!0});const d=document.querySelector(e);d&&s(d)})()}</script>


Gracias por la sugerencia, todavía soy un poco nuevo en discourse y revisaré el componente de tema, la ubicación del botón es mejor, de hecho, pero mi otro script para el límite de participantes de eventos podría no ser necesario pronto debido a esto https://github.com/discourse/discourse/pull/34313```
4 Me gusta