Skip to content

Terminal-inspired theme for Jekyll based on a port of the Nightfall theme for Hugo.

License

Notifications You must be signed in to change notification settings

questionlp/termina-plex

Repository files navigation

Termina Plex

Termina Plex is a Jekyll theme that is a port of the Nightfall theme for Hugo, developed by Matúš Námešný. This theme uses some of the foundational code provided by the Minima theme for Jekyll.

The theme is designed with a minimal default landing page and a separate page for listing available blog posts. It also features the IBM Plex Sans and IBM Plex Mono typefaces throughout the design and includes the necessary web font files in the theme bundle.

By the default, the theme respects the prefers-color-scheme value provided by the browser. A color scheme toggle is included in the header that allows the viewer to switch between light and dark mode. Once toggled, the value is stored in the local storage using Web Storage API.

Installation

Add this line to your Jekyll site's Gemfile to install:

gem "termina-plex"

To install the theme from GitHub, add this line to your Jekyll site's Gemfile:

gem "termina-plex", git: "https://github.com/questionlp/termina-plex.git"

And then execute:

bundle

Site Structure

The main index page, index.html is designed to be a simple landing page with the name of the site author and a list of social links. The file uses the index layout.

The more traditional blog post listing page is designed to be hosted under /blog with the blog/index.html using the more traditional home layout. The layout supports pagination, by way of the jekyll-paginate plugin, and can be configured with the paginate and paginate_path settings in _config.yml.

For pagination to work with the post listing page hosted under /blog, the paginate_path setting should start with /blog/.

If you want to change the path for the post listing page, the blog_path setting can be set to the preferred path. The paginate_path setting should also be updated to reflect the correct path.

Index Page Author Pronouns

Author pronouns set using the site.author.pronouns configuration setting and will be displayed below the author name on pages that use the index layout.

Google and Umami Analytics

This theme provides support for Google and Umami Analytics by setting appropriate site configuration values.

Google Analytics

To automatically add the necessary Google tag to the site, add the following line to the top level of _config.yml:

google_analytics: G-XXXXX

Replace G-XXXXX with the appropriate measurement ID.

Umami Analytics

To automatically add the necessary Umami analytics tag to the site, add the following lines to the top level of _config.yml:

umami_analytics:
  url: "https://example.org/umami.js"
  data_website_id: "abc"

Replace the url and data_website_id with the appropriate values for your Umami Analytics instance.

Additional parameters can be set in the tag by providing the appropriate values for the following keys under umami_analytics:

Umami Tag Parameter Site Configuration
data-host-url data_host_url
data-auto-track data_auto_track
data-domains data_domains

Theme Configuration

Theme specific configuration is done within the termina-plex section of the _config.yml file.

The date format used by the theme is defined by the termina-plex.date_format setting. The value needs to be in valid strftime format. The theme defaults to %d %b %Y.

The title displayed in the header of the page with display the site title, defined by the site.title configuration value, if neither the termina-plex.username or the termina-plex.hostname settings are configured. When either of the settings are configured, a Bash-like prompt is built using the configured values.

The links displayed in the header of the page are defined in the termina-plex.header_links setting. Each link is defined as an object with a name and a url key. The value of the name key will be transformed to lowercase via CSS.

The social links displayed under the site title in the main section of the landing page are defined by the termina-plex.social_links setting. Each link is defined as an object with a name and url key. An optional rel key is available if link-based validation is required by applications like Mastodon. As with the header link names, the link names will also be transformed to lowercase via CSS.

To set a site-wide fediverse:creator meta tag for article tagline support in Mastodon, define the termina-plex.fediverse_creator setting with the full account name including the initial @.

If centered tables are preferred, the termina-plex.centered_tables setting can be set to true. By default, it uses the user agent's default alignment.

By default, the theme will transform post titles to be capitalized on pages that use the home layout. If you prefer to have post titles not be transformed, you can set termina-plex.standard_titles to true.

Screenshots

Screenshot of the Termina Plex theme for Jekyll showing the landing page in dark mode

Screenshot of the Termina Plex theme for Jekyll showing the landing page in light mode

Screenshot of the Termina Plex theme for Jekyll showing a listing blog posts in dark mode

Screenshot of the Termina Plex theme for Jekyll showing a listing blog posts in light mode

Screenshot of the Termina Plex theme for Jekyll showing a blog post in dark mode

Screenshot of the Termina Plex theme for Jekyll showing a blog post in light mode

License

The theme is available as open source under the terms of the MIT License.

Both the original Nightfall and the Minina themes are licensed under the terms of the MIT License.

The included IBM Plex font files are licensed under the terms of the SIL Open Font License, Version 1.1.