Nikola for Websites¶
In this post we describe how to we use Nikola for hosting research websites. Note: this is not a comprehensive discussion of Nikola's features but a streamlined explanation of the assumptions we make for simplified organization.
Synopsis¶
The basic idea is to use Nikola to manage a collection of posts and pages which form the core for a research website. To facilitate the documentation of research, we generally use Jupyter notebooks for posts, which allows one to include math, references, source-code, and generated output. We use a custom theme based on the WSU Spine to maintain a consistent look and feel that integrates with the WSU environment.
We offer two options for deployment: A private server and GitHub. The former allows more control (for example, limiting access to certain pages behind a password) but requires maintaining that server.
Organization¶
As of Nikola 8.0, posts are organized by tags and categories:
- Tags: Posts can have many tags: these are specified in the post metadata.
- Categories: Posts can have only one category: we do not specify this in the metadata but instead use the location of the post to set the category by default.
To organize the site, we provide a mapping from input directory to output directories with the following semantic meaning:
References¶
Nikola Documentation:
- Jupyter Notebooks: Using notebooks to write your posts.
- Post taxonomy: Using tags and categories to organize your site.