Table of Contents
Jekyll on OpenBSD
Jekyll is a static web site generator that is still widely used, but on OpenBSD requires installation from the gems.
Jekyll Installation
As far as I’m concerned, I’ve already installed ruby, gem and bundler as root. So I have the gem32 and bundle32 commands at my disposal.
But I’ve decided to install Jekyll in my user directory.
Before starting, let’s add /home/username/.local/share/gem/ruby/3.2/bin to the PATH variable in .profile.
PATH=$HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin:
/usr/X11R6/bin:/usr/local/bin:
/usr/local/sbin:/usr/local/jdk-1.8.0/bin:
/home/username/.local/share/gem/ruby/3.2/bin
By executing the command:
gem32 install jekyll --user-install
an error occurs in the installation of dart-sass.
A workaround (as seen on https://github.com/jekyll/jekyll/issues/9493) is to install jekyll-sass-converter beforehand:
gem32 install jekyll-sass-converter -v 2.2 --user-install
then install Jekyll again:
gem32 install jekyll --user-install
This time Jekyll has been installed and the command jekyll32 is active.
But if we try to create a blog with the command:
jekyll32 new myblog
we see that Jekyll’s gems are missing.
Let’s execute the following two lines
bundle32 config set --local path '/home/username/.local/share/gem'
bundle32 install
to add them automatically.
Creating a Blog
Let’s run the command:
jekyll32 new yourblog
cd yourblog
bundle32 exec jekyll32 serve
In your web browser, you can view the blog by logging on to http://127.0.0.1:4000
Adding Plugins
We’re going to add the jekyll-polyglot plugin to our blog. To do this, edit the Gemfile and insert
in the jekyll_plugins group a line containing gem "jekyll-polyglot":
group :jekyll_plugins do
gem "jekyll-polyglot"
end
Let’s execute the commands in the yourblog directory:
bundle32 config set --local path '/home/username/.local/share/gem'
bundle32 install
Then, to make jekyll-polyglot support certain languages such as English and French, simply
insert the following lines in the _config.yml file:
languages: ["en", "fr"]
default_lang: "en"
exclude_from_localization: ["javascript", "images", "css", "public"]
parallel_localization: true