Consiglio vivamente di non intraprendere quella strada. È come applicare un cerotto a un effetto collaterale invece di risolvere la causa principale del problema. Creerai altri problemi con essa (come il tuo ultimo topic a causa del codice sopra)
Puoi rendere il tuo JS un po’ più “discourse friendly” (il modo migliore è comunque usare un plugin outlet quando puoi).
Ecco un esempio. Utilizza l’API al cambio pagina, esegue codice su un percorso specifico e copia l’HTML prima del link (in modo da poter fare clic sul tag):
JS
<script type="text/discourse-plugin" version="0.8">
const { next } = require("@ember/runloop");
function moveTags() {
const mainLinks = document.querySelectorAll(".main-link:not(.tags-moved)");
mainLinks.forEach((mainLink) => {
const discourseTags = mainLink.querySelector(".discourse-tags");
const titleElement = mainLink.querySelector("a[data-topic-id]");
if (discourseTags && titleElement) {
titleElement.insertAdjacentHTML("beforebegin", discourseTags.outerHTML);
mainLink.classList.add('tags-moved');
}
});
}
api.registerModelTransformer("topic", async (topics) => {
next(() => {
moveTags();
})
});
api.onPageChange((url) => {
if (url.startsWith("/categories")) {
moveTags();
}
});
</script>
CSS
.top-row,
.link-top-line {
.discourse-tag {
font-size: var(--font-down-2) !important;
padding: 2px 8px;
margin: 2px 5px 2px -6px;
border-radius: 10px;
border: 1px solid #444460;
background-color: #1f1f33;
}
.discourse-tag::after {
content: '' !important;
margin-left: 0 !important;
}
}
.bottom-row,
.link-bottom-line {
.discourse-tags {
display: none;
}
}