This blog post template is based off of the Lanyon template (the original readme can be found at the bottom).
- Install Ruby (I'm using v3.2.5)
sudo apt install ruby-full
- Once installed, add the following to your
.bashrc
or whatever terminal startup script you may use:
export GEM_HOME="$HOME/.gem"
export PATH="$HOME/.gem/bin:$PATH"
- Install bundler:
gem install jekyll bundler
- Install dependencies:
From within this repository's root directory, run:
bundle install
Mac and Windows users can find relevant guides for installing Jekyll here:
Additionally, you will need to do a few steps in Windows before serving you are able to serve your page locally. The steps below are Windows only, and you won't need them if you're on a Linux based machine.
Before running these, you'd want to make sure your Ruby and Jekyll installations are functional.
- From within the repository's root directory, run:
bundle add webrick
- Open the
gemfile
present in the root directory of the repository, and add the following line at the end of the file:
gem 'wdm', '>= 0.1.0'
- Run the following command in the same directory:
gem install wdm
You should be able to serve the page locally on Windows after these steps.
Once you've installed jekyll and all of the dependencies, you can now serve the webpage on your local machine for development purposes using the jekyll serve
command, using bundle to handle any dependencies.
In your terminal, from the directory containing the Jekyll project run:
bundle exec jekyll serve
You should see something along the lines of:
> bundle exec jekyll serve
Configuration file: /home/USER/ift6758-blog-template/_config.yml
Source: /home/USER/ift6758-blog-template
Destination: /home/USER/ift6758-blog-template/_site
Incremental build: disabled. Enable with --incremental
Generating...
done in 0.661 seconds.
Auto-regeneration: enabled for '/home/USER/ift6758-blog-template'
Server address: http://127.0.0.1:4000/
Server running... press ctrl-c to stop.
If you see this, you've successfully served your web page locally!
You can access it at server address specified, in this case http://127.0.0.1:4000/
.
You will find some basic configurations that you will need to modify in the _config.yml
file found in the repo's root directory.
You should modify the title, tagline, and description to something more appropriate, as well as update the author information.
Be careful with the urls however, as this can break things if you're not careful!
If you'd like to make your blog posts wider (i.e. have the content span a wider area of the page), you can modify this setting on line 85 of public/css/lanyon.css
.
Feel free to experiment with sizes that you prefer.
All posts are defined as markdown files in the _posts/
directory of this repository, and they must follow the naming convention of YYYY-MM-DD-postname.md
.
The date is automatically parsed from the filename and embedded into the post.
Checkout the post found in ./_posts/2021-09-17-ift6758-demo.md
for an example which embeds interactive HTML figures generated with Plotly.
As submission for the milestones, you're expected to create a single blogpost entry containing all of the answers and figures for all of the questions.
Create a file ./_posts/YYYY-MM-DD-milestone-1.md
and use a layout like the following:
---
layout: post
title: Milestone 1
---
## Question 1
...content...
## Question 2
...content...
Make sure that its obvious where each answer to the questions are!
The following content is the original Lanyon Readme file.
Lanyon is an unassuming Jekyll theme that places content first by tucking away navigation in a hidden drawer. It's based on Poole, the Jekyll butler.
Lanyon is a theme built on top of Poole, which provides a fully furnished Jekyll setup—just download and start the Jekyll server. See the Poole usage guidelines for how to install and use Jekyll.
Lanyon includes some customizable options, typically applied via classes on the <body>
element.
Create a list of nav links in the sidebar by assigning each Jekyll page the correct layout in the page's front-matter.
---
layout: page
title: About
---
Why require a specific layout? Jekyll will return all pages, including the atom.xml
, and with an alphabetical sort order. To ensure the first link is Home, we exclude the index.html
page from this list by specifying the page
layout.
Lanyon ships with eight optional themes based on the base16 color scheme. Apply a theme to change the color scheme (mostly applies to sidebar and links).
There are eight themes available at this time.
To use a theme, add any one of the available theme classes to the <body>
element in the default.html
layout, like so:
<body class="theme-base-08">
...
</body>
To create your own theme, look to the Themes section of included CSS file. Copy any existing theme (they're only a few lines of CSS), rename it, and change the provided colors.
Reverse the page orientation with a single class.
<body class="layout-reverse">
...
</body>
Make the sidebar overlap the viewport content with a single class:
<body class="sidebar-overlay">
...
</body>
This will keep the content stationary and slide in the sidebar over the side content. It also adds a box-shadow
based outline to the toggle for contrast against backgrounds, as well as a box-shadow
on the sidebar for depth.
It's also available for a reversed layout when you add both classes:
<body class="layout-reverse sidebar-overlay">
...
</body>
Show an open sidebar on page load by modifying the <input>
tag within the sidebar.html
layout to add the checked
boolean attribute:
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox" checked>
Using Liquid you can also conditionally show the sidebar open on a per-page basis. For example, here's how you could have it open on the homepage only:
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox" {% if page.title =="Home" %}checked{% endif %}>
Lanyon has two branches, but only one is used for active development.
master
for development. All pull requests should be to submitted againstmaster
.gh-pages
for our hosted site, which includes our analytics tracking code. Please avoid using this branch.
Mark Otto
Open sourced under the MIT license.
<3