مرحباً. لموسم قادم من مشروع سرد قصص الخيال العلمي القريب، نود محاولة إعادة كتابة التواريخ في جميع المشاركات في فئات معينة على Discourse الخاص بنا إلى أيام/شهور/سنوات محددة. أعرف أن هذا يبدو غريباً، لكنه منطقي في حالتنا لأن مجتمعنا يستخدمه للعب الأدوار داخل العالم، ورؤية العام الفعلي يفسد قليلاً من تعليق التصديق. لقد حاولت البحث عن المكونات الإضافية الموجودة أو الحلول الأخرى دون جدوى كبيرة. أفضل ما يمكنني استنتاجه هو أنني سأحتاج إلى كتابة واحدة بنفسي واستخدام منافذ المكونات الإضافية لتغيير التواريخ. هل لدى أي شخص أفكار أو أشياء موجودة يمكننا استخدامها؟
أوه، يبدو ممتعًا! من المحتمل ألا تكون هناك حلول موجودة لهذا، ولا يمكنني حقًا تخيل سبب مشروع لإنشاء حل يغير الطابع الزمني الفعلي. ما يمكنك فعله بدلاً من ذلك هو إنشاء مكون سمة مخصص يقوم بإدراج طابع زمني وهمي لكل مشاركة.
يمكنك إضافة bbcode [wrap] عام، والذي سيتيح لك استخدام أي [wrap=] bbcode اعتباطي في المشاركات التي تريد تغييرها.
قم بإعداد شيء مثل [wrap=timechange time='Apr 1'][/wrap] وستحصل على <span></span> في المشاركة نفسها. بعد ذلك، يمكنك استخدام decorateCookedElement() للبحث عن [data-wrap="timechange"] في كل مشاركة لتحديد ما إذا كان يجب تغيير الطابع الزمني.
لا أعتقد أن هناك منفذ إضافة عند الطابع الزمني، ولكن يمكنك دائمًا إدراج عنصر جديد في عنصر ربط تاريخ المشاركة واستخدام بعض CSS لإخفاء العنصر القديم.
إليك كيف يبدو تاريخ المشاركة الحالي.
<div class="post-info post-date">
<a class="widget-link post-date" href="...">
<span title="..." data-time="..." data-format="tiny" class="relative-date">...</span>
</a>
</div>
ستحتاج على الأرجح إلى استهداف .post-info a.post-date وإضافة عنصر جديد هناك كـ <span> أو شيء من هذا القبيل. سيؤدي بعض CSS .post-info a.post-date span:first-child { display: none; } إلى إخفاء الطابع الزمني الحقيقي. استهداف علامة الربط والحفاظ عليها سيتيح لمستخدميك الاستمرار في استخدامها بشكل طبيعي (لديها وظيفة مشاركة).
بالربط بـ decorateCookedElement()، تمنحك الدالة العنصر الجذر للمشاركة المطبوخة، لذلك يمكنك إجراء بحث سريع في DOM من هناك باستخدام element.closest() و .querySelector() للوصول إلى .post-info الصحيح.
سيسمح لك استخدام bbcode (وأي شخص آخر) بتغيير شكل أي مشاركة، بغض النظر عن الفئة. يمكنك أيضًا تحديد مكان عرضه فعليًا باستخدام بعض CSS الذكية. يجب أن يحتوي الجسم على الفئة .category-* التي ستحتوي على اسم فئة الموضوع. لذلك يمكنك تحديد CSS الخاص بك لهذه الفئات.
هذه معلومات رائعة للبدء بها. نريد تحديدًا أن يكون الأمر تلقائيًا، بدلاً من شيء يتعين على كل مشاركة اختياره، لذلك لست متأكدًا مما إذا كان bbcode ضروريًا على وجه التحديد، ولكني أفترض أنه إذا كان لدينا شيء يقوم بإنشائه تلقائيًا عند عرض المشاركات، فقد ينجح ذلك. سألقي نظرة بالتأكيد على اقتراحاتك. شكرًا لك!
لإعطائك المزيد من السياق، إنه لـ Neurocracy، ومنتدانا هو talk.omnipedia.app حيث يمكنك رؤية فئة التكهنات التي تحتوي على فئات فرعية لكل تاريخ داخل الكون. وقع مجتمعنا بشكل طبيعي في لعب الأدوار كمستخدمين لموسوعتنا المستقبلية يناقشون المنعطفات والتحولات المختلفة.