هیوگو چیست؟
هیوگو یک وبسایت فریم ورک عمومی است. مطابق اصول هیوگو یک استاتیک سایت جنریتور (static site generator ) است. بر خلاف سایر وب سایت ها(اغلب سایت ها) که به طور پویا زمانی که کاربر ریکوست (request) می دهد؛ صفحه را می سازند؛ هیوگو عملیات ساخت را زمانی که خودتان محتوا را ایجاد کردید انجام می دهد. در حقیقت وقتی بازدیدهای یک سایت نسبت به تغییرات آن خیلی بیشتر باشد ؛ هیوگو کاربرد پیدا می کند. هیوگو برای سایت های نمایشی بهینه شده است. سایت های ساخته شده با هیوگو بسیار سریع و امن هستند. سایت های هیوگو در هر جایی می توانند میزبانی شوند؛ به طور مثال : Heroku, go Doddy, Dream Host, GitHub page, Netlify, Google cloud stronge, و همچنین با CDN ها به خوبی کار میکنند. سایت های هیوگو به اسکریپت های سنگین سمت سرور نظیر Ruby , python و یا PHP نیازی ندارد. و همچنین به دیپندسی (dependencies ) های دیتابیس احتیاجی ندارد.
چه چیز هیوگو را متفاوت میسازد؟
وب سایت جنریتور ها محتوا را به فایل HTML رندر می کنند. داینامیک سایت جنریتور ها بیشتر معروف هستند. سرور HTTP (برنامه ای که بر روی سایت شما اجرا می شود و مرورگر به جای ارتباط مستقیم با سایت شما ؛ با آن ارتباط بر قرار می کند.) سایت جنریتور را به منظور ساخت فایل های HTML هر وقت که کاربر بخواهد صفحه ای را ببیند اجرا میکند. حال ساخت یک صفحه به صورت داینامیک بدین معنی است که کامپیوتر میزبان (host ) باید به اندازه کافی حافظه ی CPU برای اجرا شدن سایت جنریتور ( site generator ) داشته باشد. در غیر این صورت کاربر مجبور است رمان بیشتری را منتظر بماند تا صفحه ی مورد نظر بالا بیاید. هیچ کاربری نمیخواهد که زمان غیر معمولی را صبر کند. بدین منظور داینامیک سایت جنریتور ها باز برنامه نویسی شدند که فایل های HTML را در کامپیوتر کاربر کش ( cache ) کنند. وقتی یک فایل کش یا ذخیره میشود؛ یک کپی از آن به طور موقت در حافظه ی کامپیوتر کاربر ذخیره میشود. و وقتی دوباره آن صفحه اجرا می شود به جای آن که صفحه از طرف سرور باز تولید شود؛ از حافظه ی کامپیوتر کاربر آن را میخواند. که این بسیار سریع تر است. هیوگو یک گام فراتر رفته است؛ تمام فایل های HTML بر روی کامپیوتر کاربر پردازش خواهند شد! یک صفحه ی داینامیک قبل ار اینکه نمایش داده شود؛ بر روی سرور دستخوش تغییرات و اعمالی میشود؛ ( توسط اسکریپت هایی نظیر PHP, Ruby, .. ) و بعد به سوی کاربر فرستاده می شود و توسط مرورگر با مفسر های javascript و css و Html تفسیر میشود و به نمایش در می آید. اجرا نشدن وب جنیتور ( منظور اسکریپت های PHP , Ruby, .. ) بر روی سرور ( سرویس HTTP سرور ) مزایای زیادی دارد؛ که قابل توجه ترین آنها سرعت بالا ( performance ) است. بنابراین شما میتوانید تعداد مساوی از صفحات وب را در کسری از حافظه و سی پی یو ی مورد نیاز نسبت به یک داینامیک سایت ؛ به کار ببرید. استفاده از هیوگو به منظور ساخت وب سایت ؛شامل دو بخش میشود. بخش اول زمانی است که شما می خواهید از سرور HTTP درون ساخت ( built-in ) کامپیوتر خودتان استفاده کنید. بدین ترتیب وقتی شما فرمان hugo server را اجرا میکنید ( در خط فرمان) ؛هیوگو محتواها را به HTML تبدیل می کند و سپس سرور HTTP بر روی کامپیوتر شما اجرا می شود و بعد شما می توانید ببینید سایتتان چه ظاهری پیدا کرده است. بخش دوم زمانی است که وبسایت شما آماده شده است تا بر روی کامپیوتر میزبان (host ) قرار بگیرد. اجرای فرمان hugo بدون هیچ چیز اضافی دیگری سایت را مطابق با تنظیمات baseURL ؛ واقع در فایل کانفیگ ( configuration ) سایت ؛ بازسازی میکند. این عمل نیازمند داشتن لینک هایی می باشد که در اینترنت کار کند. ( مثلا : username.github.io )
هیوگو چه طور کار میکند؟
طبق اصول ؛ هیوگو یک دایرکتوری از فایل ها و تمپلیت ها ( template ) ایجاد میکند و از آنها به عنوان ورودی برای ایجاد یک وب سایت کامل استفاده می کند. هیوگو امکانات ( features ) زیر را به رخ می کشد : امکانات عمومی:
امکانات سازمان دهی:
امکانات محتوایی:
چه کسانی از هیوگو استفاده می کنند؟ هیوگو برای افرادی که می خواهند در یک ادیتور کد بزنند مناسب است. هیوگو برای افرادی که می خواهند کد وبسایتشان را بدون نگرانی از پیچیدگی های زمان اجرا ( اسکریپت های سمت سرور ) و دیپندنسی های دیتابیس داشته باشند مناسب است. هیوگو برای ساخت یک ساخت یک بلاگ ؛ سایت شرکتی ؛ سهام ( portfolio ) و tumblog (?) و مستند سازی ( documentation ) و سایت های تک صفحه ای یا سایت هایی با صد ها صفحه مناسب است. (مطالعه بیشتر why did you write Hugo )