This site uses [Jekyll][] and [bibble][] to generate a static Sampa website
This is a [Jekyll][]-based Web site intended for research groups. Your group should be able to get up and running with minimal fuss.
complete with publications, personnel, and news.
You can see the machinery working live at [our site][sampa].
Editing
[sampa]: http://sampa.cs.washington.edu/
-------
Most pages are just Markdown files that you can edit directly. People are
listed in `_data/people.yml` and the news is generated from `_data/news.yml`.
Try editing directly in GitHub! It's like magic.
Features
--------
* Thanks to [Jekyll][], content is just text files. So even faculty should be able to figure it out.
* Publications list generated from BibTeX.
* Personnel list. Organize your professors, students, staff, and alumni.
* Combined news stream and blog posts.
* Easily extensible navigation bar.
Setup
-----
1. Install the dependencies. You will need [Python][], [Pybtex][] (`pip install pybtex`), and [Jekyll][] (`gem install jekyll`).
2. Clone this repository. Use the `--recurse-submodules` flag to get the Bibble subrepository.
3. Customize. Start with the `_config.yml` file, where you enter the name of the site and its URL.
4. Type `make` to build the site and then run `jekyll serve -w` to view your site.
5. Keep adding content. See below for instructions for each of the various sections.
Publication List
----------------
The list of publications is in `bib/pubs.bib`. Typing `make` will generate `pubs.html`, which contains a pretty, sorted HTML-formatted list of papers. The public page, `publications.html`, also has a link to download the original BibTeX.
News Items and Blog Posts
News Items and Blog Posts
-------------------------
-------------------------
For both long-form blog posts and short news updates, we use Jekyll's blogging system. To post a new item of either type, you create a file in the [_posts directory][postsdir] using the naming convention `YYYY-MM-DD-title-for-url.md`. The date part of the filename always matters; the title part is currently only used for full blog posts (but is still required for news updates).
For both long-form blog posts and short news updates, we use Jekyll's blogging system. To post a new item of either type, you create a file in the `_posts` directory using the naming convention `YYYY-MM-DD-title-for-url.md`. The date part of the filename always matters; the title part is currently only used for full blog posts (but is still required for news updates).
The file must begin with [YAML front matter][yfm]. For news updates, use this:
The file must begin with [YAML front matter][yfm]. For news updates, use this:
@ -36,11 +56,18 @@ For full blog posts, use this format:
And concoct a page title for your post. The body of the post goes after the `---` in either case.
And concoct a page title for your post. The body of the post goes after the `---` in either case.
People are listed in a [YAML][] file in `_data/people.yml`. You can list the name, link, bio, and role of each person. Roles (e.g., "Faculty", "Staff", and "Students") are defined in `_config.yml`.
[YAML]: https://en.wikipedia.org/wiki/YAML
Building
--------
The requirements for building the site are:
The requirements for building the site are:
@ -55,10 +82,13 @@ The requirements for building the site are:
directory. To preview the site, run `jekyll serve`` and head to
directory. To preview the site, run `jekyll serve`` and head to
http://0.0.0.0:4000.
http://0.0.0.0:4000.
To upload a new version of the site via rsync over ssh, type `make deploy`. A web hook does this automatically when you push to GitHub.
If you use an alternative Python when building the bibliography, use `make
Deploying to Your Sever
PYTHON=/path/to/python`.
-----------------------
To set up deployments, edit the Makefile and look for the lines where `HOST` and `DIR` are defined. Change these to the host where your HTML files should be copied to.
To upload a new version of the site via rsync over ssh, type `make deploy`. A web hook does this automatically when you push to GitHub. Be aware that the Makefile is configured to have rsync delete stray files from the destination directory.