Simplistic jekyll portfolio-style theme for writers.
Installation on Github Pages
Add this line to your site's
Add this line to your Jekyll site's
And add this line to your Jekyll site's
And then execute:
Or install it yourself as:
$ gem install plainwhite
The "plainwhite" key in _config.yml is used to customize the theme data.
plainwhite: name: Adam Denisov tagline: Developer. Designer date_format: "%b %-d, %Y" social_links: twitter: samarsault github: samarsault linkedIn: in/samarsault # format: locale/username
Updating Placeholder Image
The placeholder portfolio image can be replaced by the desired image by placing it as
assets/portfolio.png in your jekyll website, or by changing the following line in
plainwhite: portfolio_image: "assets/portfolio.png" # the path from the base directory of the site to the image to display (no / at the start)
To use a different image for dark mode, e.g. with different colors that work better in dark mode, add a
portfolio_image_dark entry in addition to the
plainwhite: portfolio_image: "assets/portfolio.png" portfolio_image_dark: "assets/portfolio_dark.png"
Comments on posts can be enabled by specifying your disqus_shortname under plainwhite in
_config.yml. For example,
plainwhite: disqus_shortname: games
It can be enabled by specifying your analytics id under plainwhite in
plainwhite: analytics_id: "< YOUR ID >"
It can be toggled by the following line to under plainwhite in
plainwhite: sitemap: true
Excerpts can be enabled by adding the following line to your
Navigation can be enabled by adding the following line to your
plainwhite: navigation: - title: My Work url: "/my-work" - title: Resume url: "/resume"
By default, Plainwhite places the sidebar (logo, name, tagline etc.) above the content on mobile (narrow screens).
To condense it (moving some things to the bottom of the page and making the rest smaller) so it takes up less space, add the following to your
plainwhite: condensed_mobile: - home - post - page
This chooses which layouts (types of page) should be condensed on mobile screens. E.g. if you want everything but the landing page to be condensed, remove
home from the list. This option does not affect rendering on wider screens.
Dark mode can be enabled by setting the
dark_mode flag in your
The website will check the OS preferred color scheme and set the theme accordingly, the preference will then be saved in a cookie
plainwhite: dark_mode: true
Tagline can be multiline in this way
plainwhite: tagline: | First Line. Second Line. Third Line.
Search-bar can be enabled by adding the following line to
plainwhite: search: true
Search is powered by Simple-Jekyll-Search Jekyll plugin. A
search.json customization documentation can be found in plugin repository.
You can specify a custom base URL (eg. example.com/blog/) by adding the following line to
_config.yaml. Note that there is no trailing slash on the URL.
You can set the
lang attribute of the
<html> tag on your pages by changing the following line in
plainwhite: html_lang: "en"
Bug reports and pull requests are welcome on GitHub at https://github.com/samarsault/plainwhite-jekyll. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
To set up your environment to develop this theme, run
Your theme is setup just like a normal Jekyll site! To test your theme, run
bundle exec jekyll serve and open your browser at
http://localhost:4000. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
When your theme is released, only the files in
assets tracked with Git will be bundled.
To add a custom directory to your theme-gem, please edit the regexp in
If this project help you reduce time to develop, you can give me a cup of coffee :)
The theme is available as open source under the terms of the MIT License.