This is the jekyll theme used for my personal Persian website. Persian aka Farsi is written right-to-left, however some people use Roman script to write Persian language in messaging applications and social networks.
During the last few years people have reached out to me asking how to setup a persian Jekyll website with Jalali calendar support. Since Jekyll now supports themes, I created this theme based on my website to help others to bootstrap their own websites.
This repository can be of use to anybody willing to build a new right to left website. I gradually fix issues which I came across while writing new posts in my website. This website is produced using Jekyll static site generator.
Take the following steps to make your own website based on this theme. First of all, create your website if you have not already:
$ jekyll create mywebsite
Then add this line to your Jekyll site's Gemfile:
And add this line to your Jekyll site's
And then execute:
Or install it yourself as:
$ gem install jekyll-theme-mehdix-rtl
You can override theme style by creating matching files with the same structure inside your Jekyll source tree. See Jekyll Themes docs for more information on that.
Enable the Plugins
This theme uses some jekyll plugins. Enable them by adding them to the
plugins section in the config file:
plugins: - jekyll-jalali - jekyll-sitemap - jekyll-paginate - jekyll-hinduarabic - jekyll-seo-tag
You can create a
_sass folder and put a file named
custom.scss in it. This theme will load it by default.
The following layouts are available for your homepage:
- home: post titles along with an excerpt and pagination
- minimal: only post titles
This theme supports three comment systems. First one is disqus.
In order to enalbe disqus comments add
disqus_shortname:DISQUS_USERNAME to your
The second approach is static comments. In order to enable static comments add
comment_system:static to the config
file. This will load commends from
_data/comments folder. There should be one YAML file per post. Name of the file
should be the
uuid of the post (each post must have a
uuid in its front matter). The following sample defines two
comments for post with
- date: 20171220 name: تقی email: firstname.lastname@example.org url: https://johndoe.com text: > نوکرتم دادا! کوجایی تو؟ - date: 20171221 name: تقی ۲ email: email@example.com url: https://johndoe.com text: >  دادا خبری نیت ازت
For the time being I am using Netlify to handle custom comment forms on each post page and add them to the
comments using the
Forcing RTL code blocks
If you put code blocks and they appear incorrectly, you can use _Markright gem. First add it to your Gemfile:
And change your _config.yml respectively:
If any of the following ids is present in the config a corresponding item will be added to the footer:
In order to send pageviews to Google Analytics set your ID in the
Make sure to fill entries in the config file correctly to get a better search engine experience.
Specially fill the SEO section with your Github and Twitter usernames. Don't forget to add
logo entries. See
jekyll-seo-tag for further
در مورد فارسینویسی
در هنگام گزارش مشکلات یا شرح تغییرات، فارسی نوشتن خیلی هم خوب است. فقط یک شرط دارد! متن را درون تگ راست به چپ شده بنویسید که درست نمایش داده بشود. اگر هم دوست دارید انگلیسی بنویسید هیچ اشکالی ندارد.
<div dir="rtl" lang="fa">مطلب مورد نظر</div>