เพิ่ม ‹div› ในส่วนขยายไฮไลต์ไวยากรณ์ของ MediaWiki geshi

ฉันใช้มีเดียวิกิเพื่อจดบันทึกเกี่ยวกับขั้นตอนที่ฉันปฏิบัติตาม ซอร์สโค้ดที่ฉันเขียนในมีเดียวิกิจะถูกเน้นด้วยส่วนขยาย Genshi Syntax HighLight ฉันต้องการแก้ไขส่วนขยายนี้ในมีเดียวิกิ เพื่อให้สามารถสร้างกล่องเหนือซอร์สโค้ดที่ใช้เขียนภาษาโปรแกรมที่ฉันใช้ ฉันพยายามดูแหล่งส่วนขยายในมีเดียวิกิของฉัน แต่ไม่พบส่วนที่มี "ภาพร่าง" <div> ฉันยังเห็นเนื้อหาเกี่ยวกับการสร้างส่วนขยายใหม่ในมีเดียวิกิเพื่อทำความเข้าใจว่ามันทำงานอย่างไร แต่ฉันไม่เข้าใจว่ากล่องนั้นถูกสร้างขึ้นที่ไหน

ฉันใช้ไวยากรณ์ hightligher เช่นนี้ some_code

และนี่คือผลลัพธ์ในโค้ด html ที่สร้างจากมีเดียวิกิ

<div class="mw-geshi mw-code mw-content-ltr" dir="ltr">
  <div class="bash source-bash">
   <pre class="de1">
    some_code
  </pre>
 </div> 
</div>

ฉันต้องการเตรียม div เป็น div แรกเช่นนี้

<div class='gsh-lang-label'>Language bash</div>
<div class="mw-geshi mw-code mw-content-ltr" dir="ltr">
  <div class="bash source-bash">
   <pre class="de1">
    some_code
  </pre>
 </div> 
</div>

คุณช่วยอธิบายฉันได้ไหมว่าสามารถทำได้และฉันจะเผชิญกับปัญหาได้อย่างไร?


person Zerounozerolab    schedule 22.07.2014    source แหล่งที่มา


คำตอบ (1)


ฉันคิดว่า jQuery ธรรมดาจะแก้ปัญหานี้ได้ สิ่งที่ต้องการ:

$(".mw-geshi").each(function(){
    $(this).before("<div class='gsh-lang-label'>" + 
                   $(this).children().first().attr("class").split(' ')[0] + 
                   "</div>")
})

ใส่สิ่งนี้ใน [[MediaWiki:Common.js]] ดังนั้นสคริปต์นี้จะถูกเรียกใช้สำหรับผู้ใช้ทุกคน

person Sorawee Porncharoenwase    schedule 27.07.2014