یک پلاگین دیگر برای جکیل

از جایی که وبسایتم رو تحت یک زیردامنه نیز منتشر می‌کنم مشکلی با تولید لینک‌ها در جکیل داشتم که برایش یک پلاگین ساده نوشتم.

مشکل اینجا بود که وقتی مقدار baseurl رو در فایل تنظیمات سایت تغییر می‌دادم بعضی از لینک‌ها با دو تا / تولید می‌شدند. با نگاه به کدهای سایت دیدم که ‏لیکوئید تعدادی فیلتر ساده داره که در جکیل هم استفاده شده اما فیلتر خاصی برای متصل کردن لینک‌ها نداره. چنین فیلتری از اون جهت می‌تونه مفید باشه که سردرد طراح سایت رو کم می‌کنه و دیگه لازم نیست دائم کنترل کنیم که آیا لینک درست تولید شده یا نه. بنابراین من یک فیلتر برای لیکوئید نوشتم:

module Jekyll
  module URLJoinFilter
    def urljoin(first, second)
      File.join(first, second)
    end
  end
end

Liquid::Template.register_filter(Jekyll::URLJoinFilter)

حالا من در کدم می‌تونم از این فیلتر به سادگی استفاده کنم:


<a class="post-link" href="{{ site.baseurl | urljoin: post.url}}">{{ post.title }}</a>

من کد پلاگین رو در فولدر _plugins در داخل فایل‌های سایتم قرار دادم که موقع بیلد کردن سایت کار خودش رو انجام می‌ده.