Coder Social home page Coder Social logo

research-group-web's Introduction

Research Group Web Site Template

This is a Jekyll-based Web site intended for research groups. Your group should be able to get up and running with minimal fuss.

screenshot of the template

This project originated at the University of Washington. You can see the machinery working live at our site.

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.

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.
  • Responsive (mobile-ready) design based on Bootstrap.

Setup

  1. Install the dependencies. You will need Python, bibble (pip install bibble), and Jekyll (gem install jekyll).
  2. Fork this repository on GitHub.
  3. Clone the fork to your own machine: git clone [email protected]:yourgroup/research-group-web.git.
  4. Add an "upstream" remote for the original repository so you can stay abreast of bugfixes: git remote add upstream https://github.com/uwsampa/research-group-web.git.
  5. Customize. Start with the _config.yml file, where you enter the name of the site and its URL.
  6. Type make to build the site and then run make serve to view your site.
  7. Keep adding content. See below for instructions for each of the various sections.
  8. Periodically pull from the upstream repository: git pull upstream master.

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

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. For news updates, use this:

---
layout: post
shortnews: true
---

For full blog posts, use this format:

---
layout: post
title:  "Some Great Title Here"
---

And concoct a page title for your post. The body of the post goes after the --- in either case.

You can also customize the icon that is displayed on the news feed. By default it's newspaper-o. We use icons from the FontAwesome icon set.

Projects

To create a project, just create a markdown file in the _projects folder. Here are the things you can put in the YAML frontmatter:

  • title: The project title.
  • notitle: Set this to true if you don't want a title displayed on the project card. Optional.
  • description: The text shown in the project card. It supports markdown.
  • people: The people working on the project. This is a list of keys from the _data/people.yml file.
  • layout: project This sets the layout of the actual project page. It should be set to project.
  • image: The URL of an image for the project. This is shown on both the project page and the project card. Optional.
  • last-updated: Date in the format of YYYY-MM-DD. The project cards are sorted by this, most recent first.
  • status: inactive Set this to inactive if don't want the project to appear on the front page. Just ignore it otherwise.
  • link: Set this to an external URL if this project has a page somewhere else on the web. If you don't have a link:, then the content of this markdown file (below the YAML frontmatter) will be this project's page.
  • no-link: true Set this if you just don't want a project page for your project.

Personnel

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.

Building

The requirements for building the site are:

  • Jekyll: run gem install jekyll
  • bibble: available on pip
  • ssh and rsync, only if you want to deploy directly.

make compiles the bibliography and the website content to the _site directory. To preview the site, run `jekyll serve`` and head to http://0.0.0.0:5000.

Deploying to Your Sever

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.

research-group-web's People

Contributors

filipesaraiva avatar joshpoll avatar mwillsey avatar nickvashkani avatar ransford avatar sampsyo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

research-group-web's Issues

dockerfile

Will be nice to have a simple dockerfile of this setup for quick testing

How to host on Github Pages?

I might have missed something, but how can I host this site on Github Pages? It doesn't automatically build when pushing an update to Github. Does it require a gh-pages branch? Or this is because of dependencies unsupported by Github? Any tips would be appreciated.

A subdirectory or file _includes already exists

When I want to build with 'make', i'm getting this error 'A subdirectory or file _includes already exists.'. But when I delete the _includes folder, i build it without any problem but this time only pubs.index file is created, no other files are created.

Programming question about loops with Jekyll

in role-people.html you loop through the people in the _data/people.yaml file.

I have a Jekyll formatting question. Specifically, the for loop looks like:

{% for item in site.data.people %}
    {% assign person = item[1] %}
           {% if person.role == role.key %}
                   {% include person.html person=person image=include.image %}
           {% endif %}        
{% endfor %}

Why do you need that assign statement? Why can't you use the item variable directly and simply say:

            {% if **item**.role == role.key %}
                    .....

I know my way doesn't work. I just can't figure out why and I was hoping since you guys have more experience, you can tell me why.

Thanks
-Nickvash Kani

License

This is a great template and thanks for making it available to the public. How is it licensed? Are users free to use and modify it as they see fit (with proper attribution of course)? It may be a good idea to include a LICENSE file in the repo.

Blockquote And Code formatting not working

Has anyone else had an issue with getting blockquotes and code segments to render properly? According to the kramdown syntax, blockquotes can be achieved with:

This is a Quote

  • Some guy

but when I build and load the jekyll website, the quote appears as normal text.

Same issue with the codeblock. I tried:

Some code
for (int I = 0, I <100, i++)

but it also appears as normal text. Has anyone else gotten code and/or quotes rendering properly using this template?

Thanks
Nickvash Kani

Create pages for each people and research projects

Hello, do you know where I can give a look in the code for create specific pages for people and research projects?

I was thinking about use a same approach used to create blogposts.

Do you have any idea?

Cheers;

Color of Nav bar?

Does anyone know what piece of code defines the color of the navigation bar (the text color and the background color of the link if you're on that page0. Using my browser inspector, the color is #007bff but for the life of me I can't seem to find that value anywhere in the all the files. Maybe its a preset bootstrap value? I looked through all the colors defined in bootstrap.min.css abut nothing seems to change the blue navbar color.

Does anyone know if there a way to change to navbar color to something other than bright blue? I know it's a minor thing but I've spent a day struggling with this and now I got to see this through :-P.

Also, this is an amazing website template and really appreciate it. This is my first research group website and it's looking great so far!

Thanks
Nickvash Kani

Make card columns row wise

The div 'card-columns' makes every inner div row-wise with maximum column count as specified in 'css/group.scss'. How can I make the entries to come column-wise?
1 3 --> 1 2 3
2

Where is make?

I am perhaps particularly stupid, but where do I find an executable file called "make"?
Many thanks,
Martin

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.