The code that forms our ScholarsLab.org site, and stuff related to improving the site (documentation, issue list of future work)
There's a homepage for all our SLab.org-related documentation here, but we've tried to also cover the most frequently useful info below.
Want help? Definitely feel free to ask any questions in the SLab Slack #slab-org channel.
- Our "live" (aka production) website that the world can see.
- We change code in this repo, GitHub builds the site and serves the updated files, and the change appears on ScholarsLab.org a couple minutes later
Check out the appropriate documentation for:
- editing or adding a new post or page
- template for new posts * template for new pages
- template for new events
...and then locate where you need to go in the repo:
-
Adding or changing language on the homepage? Edit the repo's top-level index.html file
-
Adding or changing language on other non-repeating pages? (NB: A "non-repeating page" is hereafter referred to as a "static page", e.g. the Makerspace homepage, the Praxis homepage, etc.). All such pages are in this "pages" folder.
If you can't find the text you want to alter, it may be something that lives in a separate file:
-
/_includes covers things like our footer, navbar
-
/_layouts covers structural stuff that is the same on a bunch of pages, e.g. setting all our project pages to list the title of the project, years, and collaborator names happens in /layouts/work.html
-
/collections contain the following files, which get pulled into layouts to form posts or pages:
A./collections/_events
: one file per event, containing all the info about the event (pulled into scholarslab.org/events, indvidual event pages, and places like the homepage list of upcoming events)
B./collections/_people
: a file for every person currently or formerly part of the lab (used on scholarslab.org/people, individual bio pages, and places like the Spatial Tech page's gallery of SpIn staff photos)
C./collections/_posts
: our blog posts! (appear on scholarslab.org/blog, individual blog post webpages, and possibly in future places like a list of student-authored posts on the /student-opportunities page)
D./collections/_spaces
: info about some of our physical locations
E./collections/_work
: our projects/chunks of work (on scholarslab.org/work and individual project pages)
- Need assistance? Definitely feel free to ask any questions in the SLab Slack #slab-org channel.
How to get the site up and running on your computer:
- Ruby 2.4.1 (still true???)
- OSX: Install/manage using Ruby Version Manager
- Windows: Install/manage using Uru
- Bundler
- NPM
NB for Windows folks: Uru is unzipped using 7-Zip, which can be downloaded here. If you're in a hurry, here's the executable for version 16.04. Additionally, this article is a great explainer on how to use Uru effectively, including command line instructions.
We use Jekyll for publishing our site. To run the site locally, clone this Git repository and change directory into the project folder:
git clone git://github.com/scholarslab/scholarslab.org.git
cd scholarslab.org
To install all the necessary gems specified in the Gemfile.lock
, run Bundler:
bundle install
To install all the necessary node packages, run NPM:
npm install
If this results in an error message, make sure you have Node.js and npm installed. Check out this guide, or go straight to the download page.
To build the site:
bundle exec jekyll serve --watch
The site should build, and be locally accessible at http://localhost:4000.
The project includes several Rake tasks for creating new content. These need to be updated to work with the 2024 renewed site, so the following may not work OR may produce things that make broken site pages.
rake new_person["First","Last"]
rake new_person["Brandon","Walsh"]
rake new_post["Title here","First Last"]
ex.
rake new_post["Brandon's best blog post ever","Brandon Walsh"]
rake new_project["The name of your project goes here"]
rake new_event["The name of your event goes here","2019-01-03"]
If you run into errors, double check that you are copying the syntax exactly - no extra spaces, comma outside the quotation marks, etc.