Club website for the Operating Systems & Open-Source Group at the University of Nebraska-Lincoln. The site is written in vanilla HTML, CSS, and javascript, and is accompanied by a simple SSG written in Python.
There are no runtime dependencies, but some tools are recommended or required for development of the site.
(These programs are run automatically by a Github Action whenever you push to the site, so they aren't technically required, but they are needed if you want to preview the site locally.)
- python3 is needed to run the SSG script, and can also be used to serve the site locally.
- kera is used to build templated pages,
such as the members page. It is a python package that can be installed
locally using
pip install -r ./requirements.txt.
- just is used to create project-level
aliases for common actions like "build", "serve", or "watch". Otherwise,
you can view the scripts directly in the
./justfile. - watchexec is used to watch a directory for changes, and then runs a given command when it detects them. Useful to automatically run the SSG when you make a change to the source.
- The layout is found in
./layout.html, and contains the<head/>tag along with any headers, footers, or navigation bars. The page content will be inserted into the template in the place of the string##CONTENTS##. - Structured data used by templates can be found in
./data.json. For instance, this file contains information about members that is used to create the members page on the site. - The un-transformed site can be found in the
./srcdirectory. When the SSG runs, this directory is copied wholesale into the destination directory with every HTML file inserted into the layout and every template file ending in.platerun throughkera.- Reusable javascript (modules) are in the
./src/modulesdirectory. - All styles are in
./src/styles.css. - The directories
./src/imagesand./src/fontscontain, well, images and fonts. ./src/index.htmlcontains the home page../src/404.htmlcontains the error page.- Subpages can be found in their own directories with their own
index.htmlfiles — this is for prettier URLs.
- Reusable javascript (modules) are in the
- The destination directory is
./www/. This is the directory published to Github Pages. - The SSG program can be found in
./ssg.py. It can be ran withpython3 ./ssg.py. - The
./justfilealiases common actions like building and serving the site. Requiresjustto be installed, but you can also view the full commands by opening the file. - The SSG's dependencies are listed in
./requirements.txt, and can be installed withpip install -r requirements.txt.
- CSS classes that apply keyframe animations to an element should be named in
the format
kf-ANIMATION_NAME, and classes that apply animations to elements within themselves should be in the formatkf-ANIMATION_NAME-container.
Member profiles are defined in ./data.json, and have the following
fields:
name
: Your name.
major
: Your major(s).
bio
: A short-ish biography.
role
: Your role at OS2G (e.g. president, treasurer, et cetera) if any.
joined
: The year you first joined OS2G.
isAlumni
: Whether or not you have graduated.
imgPath
: An absolute path to an image you want displayed. Should be a square,
and will be automatically sized to 150px by 150px.
links
: A collection of links that each have a name and an href.