Skip to content

Background Knowledge

Vincent Rubinetti edited this page Dec 16, 2020 · 22 revisions

Here are some very basic explanations of terminology and technologies used in this template. If you aren't already somewhat familiar with these, this template might not be for you. That said, the template tries to make things as simple as possible, and if you're willing to learn, you should still be able to use it fairly easily.

  • A repository (or repo for short) is a place to store code for a project
  • Git is a way of tracking changes to code in repos through a command line.
  • GitHub is an online place to store, view, track, share, and collaborate on code in repos. You can make simple changes to your code on the GitHub website itself, but for most changes you'll need to use Git.
  • GitHub Pages (or gh-pages for short) is a service built-in to GitHub that can host a website for you, for free. No need to buy monthly hosting from GoDaddy! Put the source code for your website in a repo, turn on GitHub Pages, and the site will go live. Any changes you make to the code will update on the site automatically.
  • GitHub Actions (or gh-actions for short) is a feature of GitHub that can (among other things) automatically run scripts and other actions when changes are made to a repo. Setting up GitHub Actions is only needed for certain specific tasks that aren't handled automatically by Jekyll or other parts of the template.
  • HTML is how you write the main content of a web page. It tells the browser what to show, like paragraphs of text, tables of numbers, images with captions, etc.
  • Markdown is a easier way to write certain basic things from HTML. But browsers can't display markdown directly; it has to be converted to HTML first.
  • Sass (a superset of CSS) is how you get a web page to look that way you want. You can set positions, margins, colors, fonts, etc, and apply them to certain elements (tables, images, etc) in the HTML with selectors.
  • JavaScript (or js for short) is a programming language to make web pages more interactive. HTML is static/unchanging, but JavaScript allows the page to change dynamically as the user is viewing it. For example, JavaScript can be used to hide/show certain paragraphs in the HTML based on what the user types into a search box.
  • Jekyll is a tool that can automatically generate large HTML sites from much simpler markdown, and with less grunt work and code duplication, allowing you to just focus on the content. It does all this fancy work in a "pre-process" step, before you view the site. When you make a change, Jekyll compiles everything together into the final product which can then be viewed or uploaded. Jekyll also integrates very nicely with GitHub Pages, so almost no set up is required.
  • Liquid is a templating language built-in to Jekyll that allows you to insert repetitive chunks of content automatically and define logic for how your site is built by Jekyll. For example, you could provide Jekyll with a simple list of items, then use Liquid to sort them and automatically put each one in their own formatted table row. You can almost think of Liquid as (a much more limited) JavaScript for Jekyll, except that it still results in a static file at the end.
  • Ruby is a general-purpose programming language. You don't need to know Ruby to use this template, but you'll encounter a few Ruby-related files in the template, because Jekyll is written in Ruby.
  • Python is a general-purpose programming language. You don't need to know Python to use this template, unless you want to understand or modify the behavior of the automatic citations.

⚠️ This wiki is legacy documentation for the pre-release version(s) of the template, and will eventually go away!
✨ The documentation for v1.0.0 and above are now at https://greene-lab.gitbook.io/lab-website-template-docs.

🏠 Docs Home

🖼️ Gallery

▶️ Get Started

🗚 Basic Formatting

📝 Basic Editing

🤖 Citations

⚙️ Advanced Editing

🧱 Components

🧠 Background Knowledge

💡 Tips

❓ Support

Clone this wiki locally