شروع

راهنمای شروع به کار با میرا

ابتدا

این یک راهنمای قدم به قدم برای شروع به کار با میراست، در این راهنما، در کنار هم میرا را نصب میکنیم، آن را در یک شاخه‌ی جدید پیکربندی می‌کنیم، سپس چهار سایت را با مشخصات متفاوت تعریف می‌کینم، آن‌ها را تنظیم می‌کنیم و گام به گام شروع به ساختن آن‌ها در کنار هم می‌کنیم. البته این راهنما در حال تکمیل است و به مرور، قسمت‌های بیشتری به آن افزوده می‌شود. نصب میرا میرا برای نصب به پرل نسخه 5.12 به بالا نیاز دارد برای تست این که پرل را روی سیستم خود از قبل نصب شده دارید یا نه، terminal یا command line را باز کنید و تایپ کنید perl -v اگر پرل از قبل نصب شده باشد متنی شبیه به این را خواهید دید که ورژن

Read more

پیکربندی

پیکربندی میرا در یک مسیر جدید ابتدا یک دایرکتوری جدید بسازید، نام آن را هر چه دوست دارید بگذارید، مثلا mira اگر در ویندوز هستید: md mira در لینوکس و مک: mkdir mira حالا وارد مسیر جدید شوید: cd mira و میرا را در این مسیر پیکر بندی کنید: ~/mira:> mira init

Read more

تعریف کردن یک پروژه جدید

میرا مانند یک ساختمان است که طبقات متعددی دارد، هر سایت در میرا یک طبقه مجزا به حساب می‌آید که در کنار مستقل بودن، می‌تواند فضایی عمومی در کنار سایر طبقات داشته باشد و از محتوای طبقات دیگر نیز استفاده کند یا از خصوصیات عمومی برخوردار باشد. در طول این مثال اگر جایی از طبقه یا طبقات نام بردیم، منظورمان یکی یا تمام سایت‌هایی است که در زیر تعریف می‌کنیم. برای نوشتن این مثال‌ با این فرض پیش می‌رویم که قصد داریم چهار سایت در کنار هم داشته باشیم: ۱- وبلاگ به زبان فارسی. ۲- وبلاگ به زبان انگلیسی. ۳- یک سایت برای نوشتن داستان‌های کوتاه، نام «دنباله‌دار» را برای این سایت در نظر می‌گیریم. ۴-

Read more

ضمیمه‌ها

در این راهنما، برای هر بخش فایل‌های مورد نیاز را با هم می‌سازیم یا ویرایش می‌کنیم، اما اگر نمی‌خواهید خودتان فایل‌ها را بسازید یا ویرایش کنید و تنها قصد مطالعه این راهنما را دارید، اما علاقه‌مند هستید که نتیجه نهایی را تست کنید، میتوانید نتیجه تکمیل شده مربوط به هر بخش را به شکل فایل‌های فشرده دانلود کنید و در مسیر پروژه کپی کنید. فایل‌های پروژه اینها هستند: شاخه structure فایل config.yml و شاخه config شاخه content شاخه عمومی statics شاخه template

Read more

تعیین نام و محل ذخیره محتوا

برای این که فایل‌های تنظیم، پیکربندی و پوشه‌های محتوا را به وجود بیاوریم، نیاز داریم که هر سایت برای معرفی شدن به میرا، یک نام مجزا، ترجیحا به حرف لاتین، داشته باشد. برای هر کدام از این سایت‌ها نام‌های زیر را مشخص میکنیم. وبلاگ فارسی: blog-fa وبلاگ انگلیسی: blog-en داستان دنباله‌دار: story آموزش لینوکس: linux-learn محل ذخیره محتوا: پس از پیکربندی میرا چند پوشه برای شما ایجاد شده، یکی از این پوشه‌ها content است، محل اصلی ذخیره محتوا همین پوشه است، هر پوشه‌ی جدید در مسیر ریشه‌ی این مسیر، یک سایت جدید خواهد بود. پس در content این پوشه‌ها را ایجاد میکنیم: ~/mira/content/blog-fa/ ~/mira/

Read more

مشخص کردن فیلدهای پیش‌فرض برای هر سایت

۱- فرض را بر این میگیریم که برای هر نوشته در وبلاگ فارسی، تصمیم داریم یک عکس اختصاصی در نظر بگیریم، آن را در هدر در فیلدی به اسم image مشخص می‌کنیم. همچنین در وبلاگ فارسی در نظر داریم دسته بندی براساس موضوع داشته باشیم category. ۲- در وبلاگ انگلیسی دسته بندی بر اساس تگ‌ها tags را مد نظر داریم. ۳- در مورد داستان‌هایمان بر اساس کلمات و موضوع داستان، کلمات کلیدی هر داستان را می‌خواهیم مشخص کنیم keywords همچنین میخواهیم اگر داستان دیگری هم نوشته‌ایم که شبیه به این داستان باشد، به آن لینک بدهیم suggests. ۴- در مورد آموزش‌ها هم میخواهیم این فیلدها را داشته باشیم: کلمات کلیدی tags، یک فیلد توضیحا

Read more

توضیح تنظیمات در میرا

حالا باید مشخص کنیم هر کدام از این سایت‌ها را میخواهیم در چه آدرسی و به چه شکل منتشر کنیم، بدنه اصلی نوشته‌هایمان را چگونه بنویسیم، آدرس نهایی برای هر پست به چه شکلی باشد و … برای مشخص کردن خصوصیات عمومی و خصوصی ساختمان و طبقات میرا، باید از فایل‌های config استفاده کنیم. در میرا دو نوع فایل برای تنظیم پیکربندی‌ها داریم: ۱- تنظیم عمومی تنظیم مشخصات عمومی و مشترک بین تمام طبقات. فایل تنظیمات عمومی در شاخه اصلی که میرا را پیکر بندی کردیم با نام config.yml وجود دارد. ~/mira/config.yml ۲- تنظیم اختصاصی برای هر سایت یا طبقه تنظیم‌ها اختصاصی هر طبقه در شاخه‌ی config و هم‌نام با نامی که برای آ

Read more

تنظیمات عمومی

ابتدا چند فرض عمومی را در نظر میگیریم: فرض می‌گیریم تمام این موارد برای هر چهار سایت مقدار یکسانی باید داشته باشند: نام نویسنده مطالب آدرس ایمیل تصویر نویسنده لوگوی سایت می‌خواهیم مقادیر بالا برای هر چهار سایت یکسان و ثابت باشند، مگر اینکه در هدر هر پست تغییر کنند(مثل قسمت آموزش لینوکس که مطالب ممکن بود نویسنده جدا داشته باشند) هر چهار سایت از یک قالب مشترک استفاده می‌کنند. template برای قالب انتشار هر چهار سایت را با استفاده از یک قالب منتشر می‌کنیم، می‌خواهیم در ادامه قالب خودمان را با نام my-theme بسازیم، فعلاً فقط به مقداردهی اولیه اکتفا میکنیم و فیلد template را مقدار دهی میکنیم. این

Read more

تنظیمات اختصاصی برای هر سایت

می‌خواهیم هر کدام از این چهار سایت را در این آدرس‌ها منتشر کنیم: وبلاگ فارسی: address.com/blog وبلاگ انگلیسی: address.com/en داستان دنباله‌دار: address.com/story آموزش لینوکس: address.com/linux برای این منظور باید فیلدهای url و root را مقدار دهی کنیم. در مورد آدرس نهایی هر پست: به یاد داشته باشید آدرس‌ها میتوانند به شکل پوشه یا فایل تولید شوند، برای دیدن تفاوت این دو مورد، در پایان گام تنظیمات، تفاوت فیلد permalink در فایل‌های تنظیمات وبلاگ فارسی با سایر سایت‌ها را ببینید. تصمیم داریم نوشته‌های وبلاگ فارسی در آدرس‌هایی که براساس تاریخ انتشار و دسته بندی موضوعی تولید شده‌اند منتشر شوند و د

Read more

نوشتن اولین پست

حالا که تمام کارهای اولیه را انجام دادیم شروع به نوشتن چند پست میکنیم در هر سایت می‌کنیم mira new -t 'سلام دنیا' -f blog-fa با دستور بالا یک نوشته جدید در وبلاگ فارسی اضافه کردیم، پس از نوشتن دستور بالا، پیامی شبیه به این نمایش داده می‌شود: ~/mira/content/blog-fa/2017-3-23-سلام-دنیا.md created که در اصل مسیری است که فایل ساخته شده در آن ذخیره شده، این فایل را با هر ویرایشگری که دوست دارید باز کنید و ویرایش کنید، محتویات آن بعد از ویرایش باید تقریبا شبیه به این باشد: --- utid: 20170323112305 date: 2017-03-23 11:23:05 title: سلام دنیا _index: category: آزمایش image: /blog/assets/article_ima

Read more

مثال‌هایی برای محتوا

برای اینکه مثال‌های کامل‌تری داشته باشیم، محتوای سایت‌هایمان را با استفاده از تعدادی از نوشته‌های سایت‌های زیر تکمیل می‌کنیم. behroozam.com برای استفاده در وبلاگ فارسی sallar.me وبلاگ انگلیسی morde.ir داستان‌ها linuxiha.ir آموزش لینوکس دانلود شاخهcontent توضیح: مثال‌هایی که در ادامه این بخش میخوانید در این فایل موجود نیستند، بهتر است برای کپی کردن این مثال‌ها در سایت آزمایشیتان، تا آخر این گام صبر کنید و پس از خواندن این بخش و ساختن فایل‌های مثال خودتان، محتویات را جایگزین کنید.

Read more

استفاده از ایندکس برای داشتن آدرس مرتب و کوتاه

اگر به یاد داشته باشید، برای ساختن فایل‌های استراکچر در سربرگ هر سایت، فیلدی به نام index را قرار داده بودیم: _index: اما فیلد _index که در چیست و به چه دردی می‌خورد؟ با توجه به آنچه در تنظیمات قرار دادیم، هر کدام از چهار پستی که در قسمت قبل به وجود آوردیم، آدرس‌های به این صورت خواهند داشت: /blog/CATEGORY/a2017/03/23/سلام-دنیا.html /en/2017/03/23/first-post/ /linux/AUTHOR/یک-ویژگی-جدید-در-آخرین-نسخه-هسته-که-تازه-دیروز-منتشر-شده-و-به-نظرم-خیلی-جالب-بود/ /story/آغاز/ نکته: در آدرس‌هایی که برای مثال در بالا نوشته شده‌اند، CATEGORY و AUTHOR با مقداری که در هدر هر پست هست جایگزین می‌شود، فعلا چ

Read more

چند نکته و پیشنهاد در مورد محتوا

نکته: نام و پسوند فایل‌ها در دایرکتوری محتوا یا content در پردازش نهایی هیچ تاثیری نخواهند داشت، به هر شکلی که می‌خواهید می‌توانید آن‌ها را تغییر دهید، برای مثال این نام فایل را ممکن است دوست نداشته باشید: ~/mira/content/linux-learn/2017-3-23-یک-ویژگی-جدید-در-آخرین-نسخه-هسته-که-تازه-دیروز-منتشر-شده-و-به-نظرم-خیلی-جالب-بود.md آن‌را به هر چیزی که می‌خواهید تغییر دهید، مثلا: ~/mira/content/linux-learn/new-update.markdown نکته: همانطور که گفته شد نام و پسوند فایل محتوا تاثیری در پردازش آن ندارد، اما این مورد یک استثنا هم دارد، فایل‌هایی با پسوند .draft نادیده گرفته می‌شوند و از وجودشان چشم‌پ

Read more

توضیح فایل‌های ضمیمه

فایل‌های ضمیمه فایل‌های ثابتی هستند که در محتوا از آن‌ها استفاده می‌کنیم اما نیازی به پردازش توسط برنامه‌ی میرا ندارند، مثل عکس‌ها یا فایل‌های pdf، موسیقی، استایل شیت‌های قالب، فایل‌های جاوا اسکریپت یا هر چیز دیگری که در انتشار محتوا از آن‌ها استفاده کنیم یا بخواهیم به آن‌ها لینک بدهیم. میرا یک پوشه‌ی عمومی برای ضمیمه‌ها در ریشه‌ی اصلی در شاخه‌ی statics دارد ~/mira/statics و بی‌نهایت پوشه‌ی دیگر برای هرسایت در شاخه‌ی content هر طبقه.

Read more

ضمیمه‌های عمومی

هنگام استفاده از میرا، در مسیر statics در شاخه‌ی اصلی که پیکربندی شده، فایل‌های ثابت و ضمیمه‌ی عمومی را می‌توانید نگهداری کنید. ~/mira/statics محتویات این پوشه به مسیری که در فایل تنظیمات ~/mira/config.yml و فیلد static مسیر دهی کرده‌اید منتقل می‌شود و در قالب با استفاده از کد {{ MainSTATIC }} یا {{ MAIN.static }} قابل دسترسی خواهد بود. برای مثال اگر فیلد static در فایل config.yml مساوی /attach باشد و سایت‌مان را قرار باشد در address.com منتشر کنیم، نتیحه مسیری شبیه به این خواهد بود: ~/mira/config.yml > static: /attach ‌ ~/mira/statics > http://address.com/attach/ د

Read more

ضمیمه‌های اختصاصی هر طبقه

در پوشه‌ی محتوای هر سایت در شاخه‌ی content هر پوشه‌ای که نامش با خط زیر یا همان آندرلاین _ شروع شود از نظر میرا یک پوشه‌ی ضمیمه به حساب می‌آید و تمام محتویات آن‌را بدون هیچ بررسی به مسیر اصلی سایت منتقل میکند. یک مثال: در بخش تنظیمات برای وبلاگ فارسی(blog-fa) در فیلدهای url و root مسیر blog را برای انتشار مشخص کردیم، پس هر پوشه‌ای که در مسیر blog-fa با ـ شروع شود به عنوان ضمیمه در مسیر blog آدرس دهی میشود، به این مثال‌ها دقت کنید: ~mira/content/blog-fa/_assets /blog/assets/ ~mira/content/blog-fa/_statics /blog/statics/ ~mira/content/blog-fa/deep/_image /blog/deep/image ~mira/content/blog

Read more

مسیر تصاویر یا imageurl

در تنظیمات یک فیلد دیگر را به نام imageurl مقدار دهی کرده بودیم، برخلاف فیلد static که در تنظیمات عمومی تاثیر گذار بود و در تنظیمات اختصاصی تنها برای دسترسی در قالب استفاده می‌شد، این فیلد در تنظیمات عمومی استفاده‌ی خاصی ندارد و فقط برای دسترسی در قالب تعریف شده، اما در تنظیمات اختصاصی تاثیر گذار است. مورد استفاده این فیلد در پارسرهای داخلی میرا و هنگلم نوشتن متن محتوا است، در تنظیمات وبلاگ فارسی به این فیلد این مقدار را داده بودیم: imageurl: /blog/assets/article_images حالا در هر کدام از نوشته‌های این سایت اگر از تگ {{ img }} استفاده کنیم، میرا دنبال تصاویر در این مسیر میگردد. نحوه‌ی استف

Read more

توضیح ساختار قالب در میرا

هر قالب در میرا یک پوشه است در شخه‌ی template ~mira/template/ گفتیم که در این مثال می‌خواهیم یک قالب جدید با نام my-theme را برای استفاده در سایت‌مان بسازیم. پس نیاز به یک دایرکتوری جدید به همین نام در مسیر فوق داریم: ~/mira/template/my-theme/ هر قالب در میرا از تعدادی فایل پوسته تشکیل می‌شود، پنج فایل به شکل پیش فرض تعریف شده‌اند و هر تعداد که بخواهید فایل‌های فرعی. پنج فایلی که برای داشتن یک قالب کامل مورد نیاز هستند این ها هستند: main.tt2 و index.tt2 و archive.tt2 و post.tt2 و atom.tt2 یک توضیح مختصر در مورد اینکه هر کدام از این‌فایل‌ها برای چه کاری مورد استفاده قرار می‌گیرند: فایل m

Read more

main template

فایل main.tt2 برای ساختن یک قالب مشترک بین تمام سایت‌هاست، یک صفحه ارتباطی. مسیری که به عنوان url و root در فایل config.yml مشخص کرده باشید با استفاده از این قالب ساخته می‌شود. در این مثال این صفحه با استفاده از این قالب ساخته می‌شود. address.com/index.html این فایل را با هر ویرایشگری که دوست دارید باز کنید و کدهای زیر را در آن کپی کنید <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="{{ MainDESCRIPTION }}"> <meta name="author" content="{{ MainAUT

Read more

index template

فایل index.tt2 برای ساختن صفحه‌ی اصلی هر سایت در آدرسی است که برای آن در فیلدهای url و root تنظیماتش مشخص کرده‌اید. در این مثال، آدرس‌های زیر با استفاده از این قالب ساخته می‌شوند: address.com/blog/ address.com/blog/page/1/ , address.com/blog/page/2/ ... address.com/en/ address.com/en/page/1/ , address.com/en/page/1/ ... address.com/story/ ... address.com/linux/ ... کدهای زیر را در index.tt2 کپی کنید: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="{{ DESC

Read more

archive template

فایل archive.tt2 حاوی قالب ساخت تمام صفحات آرشیو است، برای مثال این صفحه‌ها: /blog/category/anime/ /blog/archive/1395/08/ /en/tags/Promise/ فایل archive.tt2 را برای ویرایش باز کنید و کدهای زیر را در آن کپی کنید: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="{{ DESCRIPTION }}"> <meta name="author" content="{{ MainAUTHOR }}"> <link rel="shortcut icon" href="{{ MAIN.author_image }}"> <title>{{ PageTITLE }}</title> &l

Read more

post template

فایل post.tt2 برای ساختن قالب تکی پست‌ها و نوشته در آدرسی است که در فیلد permalink در تنظیمات سایت مشخص کرده‌ایم استفاده می‌شود. در این مثال، آدرس‌های زیر با استفاده از این قالب ساخته می‌شوند: address.com/blog/category/year/month/day/post_title.html address.com/en/year/month/day/post_title/ address.com/linux/author/post_title/ address.com/story/category/post_title/ اگر به قالب‌های index و archive یک بار دیگر نگاه بیندازید میبینید که پست ها را با استفاده از یک حلقه {{ FOREACH post IN POSTS }} لود کردیم، در مورد post اما استفاده از این حلقه اجباری نیست، یعنی اگر از آن استفاده نکنیم باز هم pos

Read more

feed template

آخرین فایل atom.tt2 که برای ساختن فید مطالب هر سایت به کار می‌رود، البته میتوانید با هر یک از استانداردهای مورد قبول که دوست دارید فید خود را بسازید و الزامی به atom بودن آن نیست، نهایتا خروجی این فایل، فایل feed.xml در شاخه اصلی هر سایت خواهد بود. <?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <channel> <title>{{ TITLE }}</title> <description>{{ DESCRIPTION }}</description> <link>{{ URL }}</link> <atom:link href="{{ URL }}/feed.xml" rel="self" type="application/rss+

Read more

ساختن یک ساید بار

حالا وقت آن رسیده که با ساختن یک ساید بار آرشیوهایی که برای هر سایت را داشتیم را هم به نمایش درآوریم، برای این کار قبلا در میانه‌های قالب‌های index، archive و post یک قسمت را آماده گذشاته بودیم: <!-- sidebar --> <td width="30%"> </td> حالا زمان آن را رسیده که آن را تکمیل کنیم. برای نمایش لیست‌های آرشیو دو راه حل داریم، یکی به شکل کلی تمام آرشیوهای موجود را لود کنیم، مانند کاری که در انتهای قالب atom کرده بودیم، و یکی هم مثل قالب post، روشی که به ما امکان میدهد هر لیست را جدا و در جایی که میخواهیم نمایش دهیم. روش اول، لود کردن همه چیز: {{ FOREACH archive IN ARCHIVES.pairs

Read more

تکمیل کردن قالب post

زمانی که داشتیم سربرگ‌ها را تنظیم می‌کردیم برای سایت داستان ها یا همان دنباله دار، یک فیلد به نام suggests برای نمایش دادن داستان‌های مشابه تعریف کردیم که تا اینجا از آن استفاده نکردیم، حالا وقت آن رسیده که این فلد را هم به قالبمان اضافه کنیم. در فایلی که برای محتوا دانلود کردید، به این شاخه‌ی story بروید و این دو فایل را باز کنید: ~/mira/content/story/1394-12-11-the-selfish-gene.md ~/mira/content/story/1395-2-27-sleep.md در فایل sleep در فیلد suggests آدرس ایستای دو داستان دیگر وارد شده، برای نمایش دادن آن می‌توان از کدی شبیه به این استفاده کرد: {{ FOREACH suggest IN post.suggests }}

Read more

مرتب کردن چیدمان

اگر تا این مرحله دستور build را اجرا نکردید، حتما یک بار آن را امتحان کنید mira build و بعد یک پیش نمایش از سایت را برای خود اجرا کنید: mira view حالا به این آدرس بروید: 127.0.0.1:5000/blog/ می‌بینید که همه نوشته‌ها چپ به راست نوشته شده‌اند و اصلا برای نمایش زبان فارسی مناسب نیستند. همانطور که در تنظیم پیکربندی دیدید، در تنظیم هر سایت یک فیلد به نام lang را ساخته بودیم، حالا زمان استفاده از آن است. برای راست‌چین کردن محتوای فارسی از یک شرط IF و مقدار فیلد lang در فایل config اختصاصی هر سایت استفاده میکنیم. استفاده از مقدار فایل‌های config اختصاصی طبقات در قالب main و سایر قالب‌ها با ه

Read more

پوسته‌های بیشتر برای هر قالب و تغییر آدرس

پیش از این گفتیم که علاوه بر پنج فایل پایه‌ی هر قالب، میتوان به هر تعداد دیگر پوسته برای یک قالب تعریف کرد. در میرا می‌توان برای هر آرشیو یا هر پست یک قالب مجزا داشت. پوسته‌های متفاوت برای هر آرشیو برای داشتن پوسته‌ی متفاوت برای هر آرشیو، کافی است هم‌نام با آن آرشیو یک فایل در دایرکتوری قالب‌مان داشته باشیم. برای مثال اگر بخواهیم پوسته‌ی آرشیو category با سایر آرشیوها مثل tags یا آرشیوزمانی و... متفاوت باشد، تنها کافی است در دایرکتوری قالب، یک فایل جدید به نام category.tt2 بسازیم، از این به بعد در هر سایت که آرشیوی به این نام وجود داشت، به جای استفاده از archive.tt2، با استفاده از category.

Read more

ساختن صفحات

برای ساختن صفحات ثابت جدا از روند اصلی سایت، مثل صفحه درباره یا تماس و ... با اضافه کردن فیلد type و مقدار page در هدر هر پست، آن پست را به عنوان صفحه ثابت به میرا معرفی می‌کنیم، این کار باعث میشود که پست مورد نظر از لیست‌های مطالب برای نمایش در صفحه اول یا سایر صفحه‌های سایت و page.next و page.prev برای حرکت بین پست‌ها حذف شده و تنها با وارد کردن آدرس مستقیم آن نمایش داده شود. در وبلاگ فارسی یک پست جدید بسازید: mira new -t 'about me' -f blog-fa حالا آن را ویرایش کنید: --- utid: 20170328195013 title: درباره من _index: about _type: page _layout: page _permalink: /:title/ --- این صفحه در بار

Read more

آدرس‌های تکراری

همیشه این امکان وجود دارد که دو نوشته شما یک آدرس مشابه به خود بیرند، مخصوصا وقتی که در سیستم آدرس‌دهی برای هر نوشته، به جز تیتر آن هیچ شرط دیگری مثل تاریخ یا دسته بندی و... را ذکر نمی‌کنید، مثل کاری که در این مثال برای انتشار داستان‌ها کردیم. به هر حال همیشه این احتمال وجود دارد که دو پست آدرس یکسیانی به ود بگیرند، فرض کنیم که در فایل کانفیگ سایت فیلد permalink را به این شکل ساخته باشیم: permalink: :year/:month/:day/:title/ و در یک روز دو پست را با این مشخصات نوشته باشیم: post1: --- utid: 20170325151121 date: 2017/03/25 title: آزمایش _index: test category: آموزش tags: - یک - دو --- pos

Read more

تغییر آدرس آرشیو‌ها

دیدیم که در تنظیم کردن هر سایت برای آدرس‌دهی به هر پست می‌توانیم از مشخصات آن پست استفاده کنیم، برای مثال: permalink: :category/:title.html یا permalink: :author/:year/:title حالا ممکن است دسته بندی موضوعی به نام آموزشی داشته باشیم، آدرس ثابت با استفاده از مدل اول این خواهد بود: SITE_ADDRESS.com/آموزش/post-title.html و اگر آرشیوی بر اساس category ساخته باشیم هم آدرس مطالب دسته بندی آموزشی این خواهد بود: SITE_ADDRESS.com/category/آموزش/ یا نام نویسنده مطلب محمد محمدی باشد، در مدل دوم آدرس شبیه به این ساخته خواهد شد: SITE_ADDRESS.com/محمد-محمدی/post-title/ و آدرس آرشیو این نویسنده: SITE

Read more

اضافه کردن لینک شبکه‌های اجتماعی

برای افزودن لینک خودمان در شبکه‌های اجتماعی به جایی مثل ساید باز هم میرویم سراغ کانفیگ‌ها و اضافه کردن چند خط به هرکدامشان فرض میکنیم لینکی که می‌خواهیم برای شبکه‌های اجتماعی در نظر بگیریم در تمام سایت‌ها ثابت نیست و برای هر سایت یک کانال، یا اکانت جدا در شبکه‌های اجتماعی و یک کانال در پیام رسان تلگرام را ساخته‌ایم. از اینجای مثال فقط برای وبلاگ فارسی همه چیز را در نظر می‌گیریم، اما می‌توانید برای سه سایت دیگر هم به همین شکل کار را انجام دهید یا کلا این همه چیز را به جای تنظیم اختصاصی هر سایت در تنظیم‌های عمومی بگنجانید و در همه‌ی سایت‌ها از همان تنظیم استفاده کنید. آدرس ها را هم این‌ها در

Read more

افزودن مشخصات نویسنده مطلب

اگر به یاد داشته باشید در سایت آموزش لینوکس، بیشتر از یک نویسنده برای مطالبمان داشتیم، حالا میخواهیم یک اطلاعات کلی از هرکدام را به سایدبار در زیر آرشیو نام‌هایشان اضافه کنیم، ابتدا linux-learn.yml را ویرایش میکنیم و خطوط زیر را در آن می‌نویسیم: authors: - name: farbodgame desc: توضیحاتی در مورد کاربر twitter: twitter.com/TWITTER_USER_NAME - name: MrNull desc: توضیحاتی در مورد کاربر twitter: twitter.com/TWITTER_USER_NAME - name: rmasoumvand desc: توضیحاتی در مورد کاربر twitter: twitter.com/TWITTER_USER_NAME به فاصله‌ها دقت کنید، هر بخش که داخل رفتیم، یک خط فاصله اضافه

Read more

تغییر آدرس انتشار سایت‌ها

در تنظیمات دیدیم که ریشه‌ی اصلی سایت را برای یک صفحه‌ی مشترک بین تمام سایت‌ها در نظر گرفتیم و بعد برای هر سایت یک آدرس در لول پایینتر مشخص کردیم: your-address.com/ > صفحه مشترک بین هر چهار سایت your-address.com/blog/ > وبلاگ فارسی your-address.com/en/ > وبلاگ انگلیسی your-address.com/story/ > داستان‌ها your-address.com/linux/ > آموزش لینوکس اما شاید بخواهید ریشه اصلی سایت را برای وبلاگ فارسی در نظر بگیرید و صفحه‌ی مشترک را در زیر آدرس دیگری بسازید، مثل این: your-address.com/main/ > صفحه مشترک بین هر چهار سایت your-address.com/

Read more

انتخاب محل انتشار

برای منتشر کردن خروجی تولید شده توسط میرا روی وب انتخاب‌های متعددی دارید، و بسته به انتخابی که می‌کنید، راه‌های متفاوتی پیش رو خواهید داشت. می‌توانید از یکی از سرویس‌هایی که فایل‌های استاتیک را برای انتشار پشتیبانی می‌کنند مثل گیت‌هاب، استفاده کنید و یک دامین روی همان سرویس‌ها انتخاب کنید، یا از یک دامین شخصی و فضای ارايه شده توسط سرویس‌ها استفاده کنید، یا کلا از فضا و دامنه شخصی استفاده کنید. در این قسمت سعی می‌کنیم برای انتخاب کردن هر یک از سه راه بالا، یک راه‌حل پیدا کنیم. پیش نیاز: قبل از ادامه این بخش: ۱- اگر گیت را روی کامپیوترتان نصب نکرده‌اید، آن‌را نصب کنید، دانلود گیت ۲- اگر روی

Read more

انتشار روی فضای شخصی

اگر فضای میزبانی یا همان هاست شخصی خودتان را دارید، کار زیادی لازم نیست انجام بدهید، محتوای دایرکتوری public را پس از ساخته شدن به public_html یا www یا هر دایرکتوری دیگری که برای انتشار محتوای سایتتان مشخص کرده‌اید منتقل کنید. اگر از سرور خودتان استفاده می‌کنید و میرا را روی سرور اجرا می‌کنید، آدرس همین دایرکتوری public را به عنوان root در تنظیمات سرور مشخص کنید. یا اینکه mira view را روی هر portی که می‌خواهید اجرا کنید و مشخصات listen را برای سایتتان با port میرا یکی کنید. این قسمت ادامه خواهد داشت، برای تعییر فایل‌های تنظیم سرور و... که در بالا در موردشان صحبت شد چند مثال و توضیح، در آین

Read more

استفاده از گیت‌هاب برای انتشار

هدف در این بخش از راهنما شرح دادن چگونگی منتشر کردن سایتی که با میرا ساخته‌اید بر روی گیت هاب است. برای بهتر متوجه شدن این قسمت نیاز به یک آشنایی حداقلی با گیت‌هاب و چگونگی ساختن مخازن جدید در آن و دانستن مفاهیم و تفاوت‌های مخزن (repository یا repo) با شاخه یا انشعاب یا همان branch دارید. برای آشنایی بیشتر با صفحات گیتهاب میتوانید مستندات آنرا در این لینک بخوانید: User, Organization, and Project Pages گیت‌هاب برای استفاده از سرویس pages، راه‌های متفاوتی ارائه می‌کند. ۱- استفاده از دایرکتوری docs در branch master ۲- استفاده از branch فرعی با نام gh-pages ۳- انتشار محتوای ذخیره شده در maste

Read more