تجربهام در استفاده از GitHub Pages، برای کسی که در دام این مستطیلهای جادویی، جایی برای انتشار نوشتههایش میخواهد.
نمیخواهم نق بزنم، که مثلاً در دنیای توییتر و دیگر شبکههای اجتماعی، کسی نوشتههایی که بلندتر از یک پاراگراف هستند را نمیخواند. مگر خودم چقدر مشتاق خواندن متن نوشتههای کسانی که نمیشناسم هستم؟ مگر دنیا چقدر بلند است؟ مگر وقت ما چقدر آزاد است؟ چرا باید ریسک کنیم و در میانه خواندن به این نتیجه برسیم که وقتمان تلف شده و «این آنچه میخواستم نیست». راستش را بخواهید، بعید است برای دیگران بنویسم (بجز این متن و برخی دیگر). نه آنکه نخواهم، تلاشی بیهوده است. رقابت برای بلعیدن وقت آدمها بیشازحد تصورمان است. این همه فیلم و سریال و بازی و توییتهای جذاب و غیره. اتفاقاً اگر نق هم باشد، بر سر خودم است که چرا خود را از لذت آن چیزها محروم کردهام، انگشت بر سر این کلیدها میکوبم و دل به این خطوط مجازی بستهام. در هر حال، نمیدانم. شاید برای خودم مینویسم؛ نه خودِخودم، خودم در آینده، وقتی گذشتهام را زیر آوار زمان جستجو میکنم. یا شاید برای آدمهایی که معجون جاودانگی را کشف میکنند و ماندهاند وقت خود را چگونه بگذرانند مینویسم. یا شاید برای نیکا، هرچند امیدوارم چون من گرفتار این مستطیلهای جادویی نشود و وقتش را به قدمزدن و آوازخواندن و خندیدن بگذراند.
بگذریم، مدت زیادی در جستجوی جایی برای انتشار نوشتههایم گشتم. فکر میکنم هنوز رد برخی نوشتههایم در Google.Sites و غیره باشد. GitHub Pages خوب است. همان یک حلقه قدرت است. «One Ring To Rule Them All». این متن را در توصیف تجربهام مینویسم شاید دیگری هم گرفتار این مستطیلهای جادویی شده باشد.
احتمالاً باید کمی Git و Markdown و Jekyll و Liquid و HTML بیاموزید. من یک آشنایی جزئی دارم و کارهایم را راه میاندازد. مثلاً برای راستبهچپ کردن پاراگرفهای فارسی، یا برای نمایش فرمولهای لاتک، یا محاسبه زمان موردنیاز برای خواندن یک متن، یا امکان جداسازی تصاویر یک متن از خود متن، یا امکان ارتباطبرقرار کردن با اکانتهای مختلف، مثلاً توییتر. اینها را از منابع مختلف میتوان یاد گرفت. البته اکنون در GitHub من موجود هستند. در هر حال، اگر به کدنویسی علاقهمند نیستید، شاید گزینه مناسبی نباشد. برعکس، اگر کدنویسی را دوست دارید، انتخاب بهتری وجود ندارد. جداسازی «محتوی» و «نمایش» برای من بسیار مهم بود. حتی راهحلی میخواستم که تصاویر درون متن را بیرون از متن اصلی بگذارم. چرا؟ احتمالاً نتیجه همان رویکرد MVVM (و رویکردهای مشابه) باشد که وقتی با آنها آشنا شدی، رها کردنشان واقعاً سخت است. پس دلیلم در دلایل استقبال از یا اهمیت رویکرد MVVM (و مشابهاتش) نهفته است. این رویکردها انعطافپذیرند. اگر مثال بزنم، برای Instant View در تلگرام این موضوع کمک بزرگی است (هنوز آنرا اجرایی نکردهام). به عنوان مثال دیگر، برای ساختن Word Cloud آنرا لازم دارید (همان تصویری که در صفحه اصلی سایت است. البته، برنامه میانیش را بهصورت یک LDTMethod نوشتم. توضیحش نیازمند یک پست جداگانه است). اگر کمی فراتر برویم، بهعنوان مثال دیگر، ترجمه اتوماتیک متن به زبانهای دیگر طبیعتاً در چنین فضایی راحتتر صورت بگیرد.
بهطورخاص، Git برایم مهم بود. ثبت جزئيات تغییرات متنها در طول زمان برایم مهم است. البته این مستلزم عجله نکردن هم هست. بعضی مواقع برای یک کاما یک commit لازم میشود. در هر حال، در این سرویس، نگران خرابشدن سیستم یا گمشدن اطلاعات هم نیستم. همچنین، نگران بستهشدن حسابکاربری هم نیستم. حتی اگر GitHub خدمات عمومیش را هم متوقف کند، سرویسهای دیگری برای ایجاد سایت ایستا وجود دارد. کپی اطلاعات هم که در هارددیسکم موجود است. فارغ از آن، ریسک فیلتر شدن GitHub هم احتمالاً کم باشد (کم است؟! خدا به ما رحم کند).
مشکل اساسی GitHub Pages آن بود که کامنتگذاری امکانپذیر نیست. بالاخره شاید یکنفر نظری داشته باشد. راهحلهایی شاید یافت بشود، اما ریزهکاریهای زیادی وجود دارد. مثلاً اینکه آیا و چگونه نظرات را در Git ثبت کنیم؟ فحشها را چطور پنهان کنیم؟ چگونه برخی را بلاک کنیم؟ هویتها و تاریخچه افراد را چگونه متوجه شویم؟ اگر توجه کنید، همه نیازهایی هستند که در توییتر پاسخ دارند. پس کافی بود که هر پست را به پست توییترش مرتبط کنم. Liquid بهراحتی این امکان را فراهم میکند. کافی است لینک یادداشت را در توییتر بگذارید، لینک توییت را به یادداشت بیاورید. مشکلش آن است که توییتها را نمیشود ادیت کرد. مثلاً در رابطه با پستی که بعدازظهر در مورد بورس نوشتم، یک اشتباه رخ داد. تاریخ پست در Jekyll متفاوت از تاریخ ثبت GitHub است. در پستهای قدیمیام این اتفاق میافتد، اما آنها عمدی هستند. اینجا اشتباه رخ داد. یا باید توییت را پاک کنید، یا در متن کامنت بگذارید، یا اهمیت ندهید. من این آخری را انتخاب کردم.
مقدمه را اگر نخواندهاید، مهم نیست، اما بدانید که اگر هدفتان تاثیرگذاری است، احتمالاً پلتفورمهای دیگر نظیر توییتر مناسبتر باشد. تجربه خودم نشان داده که وقتی در توییتر هستم، کلیککردن بر لینکها و خارجشدن از توییتر کمی نامطلوب است. مشکل ویرایشگر برای Markdown در فارسی شاید اذیتکننده باشد. من در TexStudio مینویسم. نه اینکه نرمافزارهای تخصصیتر که همزمان نتیجه را گزارش میدهند وجود ندارد. عادت کردهام. فکر میکنم هیچ نرمافزاری سرویس اتوماتیک حروفچینی راستبهچپ را نداشت. شاید اگر بگردید، چیز جدیدی بیابید. اگر ۴ سال عمر به عمر فعلی من اضافه کنید، برمیگردم و پروژه Quill را تکمیل میکنم. تجربه ساختن سایت ایستا با DocFX هم دارم. برای LDT آنرا اجرایی کردم. البته برای وبلاگنویسی نیست، اما بعضی وقتها به این فکر میکنم که احتمالاً بتوان از آن برای این منظور استفاده کرد. فعلاً تجربهای ندارم. فارغ از آن، ابزارهای مجانی برای تبدیل md به html وجود دارد. به یاد دارم قبل از استفاده از DocFX یک پروژه برای اتوماتیکسازی راهنمای LDTMethodها نوشته بودم. آن هم یک راهحل منعطف اما پرهزینه دیگر است.
در نهایت آنکه، Liquid ابزار بسیار قدرتمندی است و من تنها کمی از آن میدانم. بسیاری از کارها که من نکردهام، امکانپذیر است. تغییراتی در ذهنم هست، مثلاً درخصوص رزومهام، که در آینده اضافه میکنم. بنابراین سعی میکنم این متن را بهروزرسانی کنم. چطور مطلع میشوید؟ با کامنت در توییتر.