به زبان ساده، Jekyll یک سیستم مدیریت محتوا است، اما با یک تفاوت مهم با دیگر سیستمها. در خود سایت Jekyll در یک جمله این سیستم به شکل زیر تعریف می شود:
Transform your plain text into static websites and blogs
یک لحظه! سایتهای استاتیک؟ سال ۲۰۱۵؟ شوخی میکنی؟
اگر در حوزه طراحی و پیادهسازی وب سایت مشغول بوده باشید احتمالا دورهای را به خاطر دارید که در آن سایت داینامیک یک مزیت رقابتی بزرگ محسوب میشد، چیزی که به مرور زمان با تبدیل شدن به امری ضروری از یک مزیت رقابتی به یک لزوم پیادهسازی تبدیل شده است. اما چرا Jekyll که یک سیستم مدیریت محتوا است خود را به این شکل معرفی میکند و از آن به عنوان مزیت رقابتی یاد میکند؟
در دنیای امروز با گسترده شدن کارها، نیازهای مختلف ایجاد شده و براساس همین نیازها Jekyll بوجود آمده. شاید بهتر باشد ببینیم این سیستم چه نیازهایی را پوشش میدهد.
احتمالا برایتان پیش آمده که نیاز داشتید یک وب سایت ساده، شامل چند صفحه اطلاعات را بخواهید پیادهسازی کنید. اگر از خیلیها بپرسید به شما وردپرس را پیشنهاد میدهند، چرا که یک سیستم ساده، سبک و راحت هست.
در این قسمت هست که Jekyll نیز به عنوان یک گزینه مناسب مطرح میشود و فضایی بین استاتیک کامل و داینامیک ساده را برایتان پر میکند و البته مزایای یک سایت استاتیک را هم به همراه دارد که در ادامه به آن ها اشاره خواهیم کرد.
شما بوسیله این سیستم قادر خواهید بود وب سایتهایی ساده داشته باشید و حتی وبلاگ خودتان را هم با همین سیستم راهاندازی کنید. برای این کار Jekyll از یکسری تکنولوژیهای روز نیز برای توسعه استفاده می کند، نظیر:
Markdown: برای پردازش متن و نوشتن محتوا از Markdown استفاده میشود. البته شما قادر هستید براحتی کدهایی HTML نیز وارد کنید. همچنین پشتیبانی از سیستمهای مشابهی نظیر Textile نیز وجود دارد.
Sass: برای پردازش فایل های CSS میتوانید از سیستم قدرتمند Sass نیز استفاده نمائید.
CoffeeScript: برای پردازش فایل های جاوا اسکریپت.
اما بریم چند نمونه واقعی از سایتهایی که توسط این سیستم ایجاد شدهاند را ببینیم:
اما نقاط قوت این سیستم در چه چیزهایی هست؟
امنیت
- Jekyll خروجی کارهای شما را به فایلهای استاتیک تبدیل میکند تا بتوانید از آن بر روی هر هاستی استفاده کنید و خب اطمینان داشته باشید که از نظر امنیت هیچ مشکلی نخواهید داشت (البته امنیت هاست مبحث جداگانهای است). پس میتوان گفت ما با امنترین سیستم مدیریت محتوا مواجه هستیم که هیچ کسی نمیتواند در آن نفوذ کند! یا بهتر بگویم جایی برای نفوذ وجود ندارد.
سرعت
سرعت بارگذاری نسبت به بقیه سیستمها بالاتر هست. چرا؟ خب سایت صرفا HTML است و نیاز به هیچ پردازشی در سمت سرور ندارد. بنابراین سایت شما با Jekyll نسبت به بقیه سریعتر است.
ویرایش با ویرایشگر دلخواه
خیلی از ما ویرایشگر مورد علاقه خودمان را داریم و با آن راحتیم. اما در سیستمهای مدیریت محتوا مجبور هستیم از ویرایشگری که آنها در اختیار ما قراردادهاند استفاده کنیم. بطور مثال در وردپرس باید از TinyMCE استفاده کرد و راهی برای استفاده از ویرایشگر Sublime وجود ندارد.
در این سیستم شما مستقیما با فایلها در تماس هستید بنابراین میتوانید برای ایجاد و مدیریت فایلها از ویرایشگر مورد علاقهتان استفاده نمائید.
عدم نیاز به آشنایی با زبانهای برنامهنویسی
در بسیاری از سیستمهای مدیریت محتوا برای ایجاد یک Template شما نیاز دارید حداقل یک زبان برنامهنویسی را یاد بگیرید و یا حتی با آن آشنا شوید تا بتوانید برخی کارهایی که مد نظرتان هست را پیاده کنید. اما در Jekyll ما تنها با CSS و HTML در تماس هستیم و بقیه کارهای توسط یک سیستم Template Engine به نام Liquid انجام میشود که در ادامه در مورد آن خواهید خواند.
میزبانی رایگان!
در دنیای وب ۲ سایت بسیار معروف در زمینه خدمات Git وجود دارد: Github و Bitbucket که در این میان گیتهاب بیشتر از Bitbucket شناخته شده است. این دو سرویس به شما این اجازه را میدهند که فایلهای HTML را بر روی سرورشان قرار داده تا همانند وبسایت آن را نمایش دهند به روی نام دامنه شما. با توجه به اینکه خروجی تولید شده توسط Jekyll فایلهای HTML هست. پس شما به راحتی و به صورت رایگان میتوانید از این سرویسها برای میزبانی سایت خودتان استفاده کنید.
این سرویسها سایت شما را بدون دریافت هیچ هزینهای با سرعت عالی، پهنای باند نامحدود، فضای زیاد و اطمینان بالا میزبانی میکنند. در بین این دو گزینه، Github حتی فایلهای پردازشنشده Jekyll را نیز پشتیبانی میکند و شما میتوانید قسمت پردازش را هم به آن بسپارید که این مزیت Jekyll نسبت به رقبای مشابهش باعث معروفیت بیشتر آن شده است.
در حال حاضر همواره هاستها علاوه بر هزینه، مشکلات خاص خودشان را داشتند، بطور مثال یک روز سرعت کم است، مشکلی در سرویس دیتابیس بوجود آمده و یا به هزار و یک دلیل سایت شما به اصطلاح بالا نمیآید. با توجه این قابلیت هیجانانگیز شما دیگر نیازی نیست که این دردسرها را تحمل کنید.
تا اینجا ما با مزیتهای این سیستم آشنا شدیم. اما ببینیم چه امکاناتی در اختیار قرار داده شده است:
RSS: از آنجایی که Jekyll به شما وعده یک وبلاگ را میدهد، بنابراین داشتن قابلیت RSS ضروری به نظر میرسد.
پیش نویس: در وردپرس احتمالا دیدهاید که میتوانید یک نوشته را به صورت Draft ایجاد کرده تا در آینده با بروزرسانی آن بتوانید منتشرش کنید.
دیتابیس ساده: با استفاده از فایلهایی با فرمت JSON و YAML میتوانید اطلاعات خود را بر روی این فایلها ذخیره کرده و بسته به نیاز بر روی این اطلاعات Queryهای ساده بگیرید و از آنها استفاده کنید.
انواع محتوا: مشابه قابلیت Post Type در وردپرس هست که میتوانید انواع محتوا داشته باشید. بطور مثال نوع محتوای پروژه، صفحه ساده و … .
مدیریت آدرسها: Jekyll به شما امکان ایجاد آدرسهای دلخواه و حتی تعریف پترن برای آنها را نیز میدهد.
Liquid: سیستم Template Engine ای که در Jekyll استفاده شده است و میتواند واقعا جز نقاط قوت آن محسوب شود.
در بالا برخی با برخی از امکانات این سیستم آشنا شدیم. در ادامه به بررسی نقاط ضعف آن میپردازیم:
پردازشهای سمت سرور: همانطور که در بالاتر هم اشاره شد، یکسری پردازشها در هنگام کامپایل توسط Jekyll انجام میشود، اما دیگر شما به قابلیتهای بسیار زیادی که سیستمهای دیگر در اختیارتان قرار میدهند دسترسی نخواهید داشت.
دیتابیسهای قدرتمند: مسلما دیتابیسی که Jekyll بر روی فایل در اختیار شما قرار میدهد قابل مقایسه با نمونه های معروف موجود نظیر MySQL نیست و از امکانات بسیار کمتری برخوردار است.
فرمهای وب: همان مورد اول. عدم پردازش سمت سرور. بنابراین شما فرمی نخواهید داشت که بتواند اطلاعات را گرفته و آن را در جایی ذخیره کنید و یا بریتان ایمیل شود. البته برای حل این مشکل سرویسهایی وجود دارند که این فرمها را در اختیار شما قرار میدهند و نقش واسط را بازی میکنند.
عدم وجود بخش نظرات: شما وبلاگ دارید اما وبلاگتان بخش نظرات ندارد به همان دلیل اول. البته اینجا هم با استفاده از سرویسهای واسط نظیر Disqus میتوانید این قابلیت را نیز بر روی سایت خود داشته باشید.
جستجو: این هم از نقاط ضعف این سیستم است که خب در اینجا هم مانند موارد بالا سرویسهای واسطی همچون گوگل وجود دارد که میتوانید از آنها استفاده نمائید.
نحوه نصب Jekyll
این سیستم با زبان Ruby نوشته شده است بنابراین استفاده از آن ابتدا باید این زبان را بر روی سیستم عامل خود نصب نمائید.
بعد از نصب روبی کافیست به سایت Jekyll رفته و بخش ساده Get up and running in seconds را در خط فرمان وارد نمایید. البته برای کاربرانی که از سیستم عامل ویندوز استفاده میکنند یک راهنمای جداگانه در اینجا وجود دارد (بصورت پیشفرض این سیستم تنها از سیستم عاملهای مک و لینوکس پشتیبانی میکند.).
Liquid Templating language
در قبل اشاره کردیم که Jekyll از Liquid Templating language برای ایجاد قالبهایش استفاده میکند. این سیستم توسط کمپانی Shopify ایجاد و به صورت متنباز توسعه داده میشود.
نمونه از مارکاپ آن را میتوانید در زیر مشاهده نمایید:
<ul id="products"> {% for product in produts %} <li> <h2>{{ product.name }}</h2> Only {{ product.price | price }} {{ product.price | prettyprint | paragraph }} </li> {% endfor %} </ul>
برای آشنایی با این مارکاپ و سیستم میتوانید به این وب سایت مراجعه کنید.
افزونهها
بوسیله افزونهها (پلاگین) میتوانید قابلیتهای جدیدی به Jekyll اضافه کنید، بطور نمونه قابلیتهایی چون Sitemap.xml Generator ، Full-text search ، Related posts و… از جمله افزونههایی هستند که توسط دیگران نوشته و در دسترس قرار دارد.
برای دانلود این افزونه ها کافیست به اینجا و اینجا مراجعه فرمایید.
البته توجه داشته باشید که سایت Github در حالت کامپایل Jekyll هیچ افزونهای را پشتیبانی نمیکند.
قالبها
برای استفاده از قالبهایی که دیگران برای این سیستم نوشتهاند میتوانید به این وب سایت مراجعه کنید. همچنین برای دیدن وبسایتهایی که با این سیستم ایجاد شده است میتوانید این لیست را ببینید.
نمونههای مشابه
اگر برایتان سوال شده است که آیا رقیبی برای این سیستم وجود دارد، مسلما جواب بله هست و البته رقیبها هم زیاد هستند. برای مشاهده لیست نسبتا کاملی از سیستمهای مشابه میتوانید به این وبسایت مراجعه کنید.
در همین رابطه بخوانید:
فایل مربوط به ارائه این نوشته را نیز میتوانید در این آدرس مشاهده و دانلود نمایید.
سلام
سیستمی مشابه jekyll به زبان PHP وجود داره؟
راستش من چیزی ندیدم و البته جستجوی خاصی هم نکردم. اگر چیزی وجود داشته باشه اینجا میتوانید پیدا کنید:
http://www.staticgen.com/
ایده این سیستم بسیار عالی هست
سلام، آیا منطقیست که برای وبلاگی بزرگ که قرار است روزی ۲۰ تا ۳۰ پست منتشر کند از جیکیل استفاده کرد؟! در واقع سوال اصلی من اینجاست که در آینده که حجم زیادی از مطالب وجود خواهد داشت، و اینکه مسلما با هر اضافه شدن هر پست باید کل ساید دوباره generate شود، مشکلی در سرعت و پرفرمنس وجود نخواهد داشت؟!
و یا اینکه بطور کلی مشکل دیگری برای سایتهایی با حجم مطالب زیاد وجود خواهد داشت یا نه. ممنون میشم راهنمایی کنید.
نظر من رو بخواهید، خیر. منطقی نیست.
در مورد کارائی در صورت زیاد شدن مطالب تنها زمان build کردن بالا میرود و با توجه به خروجی static مشکلی روی سرور نخواهد بود.
تجربه من روی هفته نامه طراحی وب فارسی زمانی که تعداد مطالب بالا رفته (حدود ۳۰۰ نوشته) زمان build کردن خروجی زمان خیلی افزایش یافته و اذیت کننده شده. البته در نسخه جدید jekyll که قرار به زودی منتشر بشه موضوع سرعت روش مانور زیادی داده شده.
[…] در مورد Jekyll مطالبی نوشتم که میتوانید در اینجا و اینجا آنها را مطالعه کنید. از مزایاشون میشه به […]