Is it possible to show post numbers for each post (Or easy to do via CSS or similar). My use case is running forum mafia, where allowing users to easily refer to a post without the bulk of quoting it would be amazing.
Just press the link button under each post, and the post number is visible there.
It is hard to say if this is what you are looking for, but it should get you close.
We use that CSS to put #1, #2, et al on a topic after the date/timestamp.
Yes, it is, this is amazing 
Thanks so much!
a.post-date span {
margin-right: 1em;
}
a.post-date:after {
content: "#"attr(data-post-number);
}
لم يعد هذا يعمل. هل هناك طريقة حالية لإظهار أرقام المشاركات؟
الآن لا يحتوي وسم post على معرف data-post-number، وهذا النمط CSS لا يعمل، لا أعرف ما إذا كانت هناك طريقة أخرى للحل؟
ليس بدون جافاسكريبت.
شكراً على الرد، هل هذا مكون إضافي يحتاج إلى كتابته لاستدعاء واجهة برمجة التطبيقات؟ أم أنه مكتوب ببساطة في مكون السمة؟
شكراً جزيلاً. لقد قمت بحل المشكلة الآن!
api.decorateCooked(() => {
var add_post_number_timer = setTimeout(() => {
var articles = document.getElementsByTagName("article");
for (var i = 0; i < articles.length; i++) {
var post_date = articles[i].getElementsByClassName("post-date");
if (post_date.length != 0) {
var post_number = articles[i].getAttribute("id").replace("post_", "");
post_date[1].setAttribute("data-post-number", post_number);
}
}
clearTimeout(add_post_number_timer);
}, 500);
}, {
id: 'add_post_number'
});
رائع! لقد اكتشفت كيفية القيام بذلك. ![]()
فيما يلي بعض التحسينات التي يمكنك إجراؤها:
-
سيتم إيقاف
api.decoratedCookedوسيتم استدعاؤه في كل مشاركة.
يمكنك استخدامdecorateCookedElementبدلاً من ذلك، والذي يعمل بدون jQuery. -
يتم تمرير
elementيمثل المشاركة الحالية إلى واجهة برمجة التطبيقات (API)؛ يمكنك استخدامه كسياق للمشاركة الخاصة بك. -
يمكنك العمل مع الدالة
scheduleمن ember لانتظار عرض العنصر.
import { schedule } from "@ember/runloop";
// const { schedule } = require("@ember/runloop"); // استخدم هذا إذا كنت تعمل في واجهة المستخدم الإدارية
api.decorateCookedElement((element, /* helper */) => {
schedule("afterRender", () => {
const article = element.closest("article");
if (article) {
article.dataset.postNumber = article.id.replace("post_", "");
}
});
});

: +1: شكراً جزيلاً على التصحيح.