mdBook, Markdown dosyalarından kolayca kitap oluşturmak için kullanılan, özellikle Rust ekosisteminde popüler bir araçtır. Resmi Rust kitabının yayınlanmasında da kullanılan bu araç, basit ama etkili bir eklenti mekanizmasına sahiptir. Bu mekanizma, kitap çıktısını herhangi bir programlama dili veya araç kullanarak istenilen şekilde değiştirmeye olanak tanır. mdBook'un mimarisi basittir: içerikler Markdown dosyaları olarak saklanır ve mdBook bunları varsayılan olarak HTML'e dönüştürür.
Ön işlemci (preprocessor) mekanizması, Markdown dosyalarından yüklenen kitabın kaynağı üzerinde çalışan, isteğe bağlı bir programın kaydedilmesine izin verir. Bu program, içeriği çıktı oluşturmak üzere render ediciye gönderilmeden önce istediği şekilde değiştirebilir. Makalede, bu mekanizmayı göstermek amacıyla "narcissist" eklentisinin Python ve Rust versiyonları sunulmuştur. Python versiyonu, mdBook'un farklı programlama dillerinde yazılmış ön işlemcileri nasıl çağırabildiğini gösterirken, Rust versiyonu mdBook'un kendi Rust tabanlı API'sini eklentilere nasıl sunduğunu ortaya koyar.
mdBook ön işlemcileri, temel eklenti kavramlarıyla da uyumludur. Keşif (Discovery) süreci, her eklentinin projenin book.toml yapılandırma dosyasında açıkça listelenmesini gerektirir; her ön işlemci, mdBook'un bir alt süreçte yürüteceği bir komuttur. Kayıt (Registration) için mdBook, eklenti komutunu iki kez çağırır: önce render edici desteğini kontrol eder, ardından tüm kitabı JSON formatında stdin aracılığıyla eklentiye iletir ve değiştirilmiş kitabı JSON olarak stdout'tan geri almayı bekler. Kancalar (Hooks) açısından ise mdBook, ön işlemciye tüm kitabı tek bir JSON nesnesi olarak sunar.
mdBook'un esnek eklenti mimarisi, geliştiricilere kitap oluşturma sürecini istedikleri dilde ve araçlarla derinlemesine özelleştirme imkanı sunuyor.