Skip to content

Commit 04a189b

Browse files
committed
Merge with master
2 parents 0321a8d + 8914a6f commit 04a189b

File tree

59 files changed

+1469
-124
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+1469
-124
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ _site/
33
.jekyll-cache/
44
.jekyll-metadata
55
.DS_Store
6+
Gemfile.lock

CONTRIBUTING.md

Lines changed: 284 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,284 @@
1+
# Contribution Guide for the Compiler Research website
2+
3+
## BootStrap 3.3 Functionalities
4+
5+
The Compiler Research website is based on BootStrap 3.3.
6+
7+
> Note: Some of the elements available in the latest version of BootStrap may not be available in v3.3 or may have a different name. Please see the [BootStrap 3.3 Components Documentation] to add any new supported elements.
8+
9+
## Home Page Customization
10+
11+
Depending on Jekyll's functionality, the sections shown on the website homepage are either defined in the [home.md] under [pages] or the [homepage layout] under [Layouts].
12+
13+
#### Homepage Layout (homelay)
14+
15+
The website's [homepage layout] currently consists of the following sections:
16+
17+
- Splash Banner ([Jumbotron])
18+
- Cards/ [Thumbnails]
19+
- Projects
20+
- Publications
21+
- Presentations
22+
- Team
23+
- Wells
24+
- [Open Projects]
25+
- [Project Meetings]
26+
- [Releases]
27+
- [News]
28+
> Note that these wells are not fluid. That is, they're made of a fixed pixel size that roughly accommodates 3-5 list items in each category.
29+
- `{{ content }}` Placeholder
30+
- Used to render the content available inside the page that is using the "homelay" layout, for example: `home.md`)
31+
- [Blog Widget]
32+
33+
> Please see the [BootStrap 3.3 Components Documentation] to understand better the included elements (Jumbotron, Thumbnails, Wells, etc.).
34+
35+
#### home.md Page
36+
37+
###### Layout/ Masterpage
38+
This is the main page for the Website's homepage, but it pulls a lot of content from the "[Homelay]" Layout, as discussed above. The layout works as a wrapper/Master Page around the content on the homepage (`home.md`).
39+
40+
All the contents of the homepage (`home.md`) are rendered within the `{{ contents }}` tag within the "[Homelay]" Layout.
41+
42+
###### home.md contents
43+
44+
Everything under the "Recent Content" heading shown on the website's homepage is pulled from this file (except the Blog Widget, which is part of the `homelay` layout.)
45+
46+
- Include [Carousel](/_includes/carousel.html) to show a Carousel of Videos.
47+
- Include [Open Embed script](/_includes/open-embed.html) to enable the functionality of fetching YouTube, etc. videos and embedding them into the webpage.
48+
49+
### Adding a new Project
50+
51+
#### Project Pages vs. Projects List
52+
It is possible to
53+
54+
- add a new page with a lot of project details (e.g.,
55+
`\_pages\testproject.md`) and then:
56+
- add the project excerpt to the projects directory `_data\projects.yml`,
57+
58+
Or,
59+
60+
- only add the project excerpt to the projects directory `_data\projects.yml`
61+
if there aren't enough details available for the project.
62+
63+
#### Linking to the Project Page
64+
65+
- Use the `link` attribute in the `projects.yml` file to define the link
66+
to the detailed project page (if you created this in the previous step).
67+
- If there's no dedicated page for that page, then a link to an external website/readme/readthedocs can also be used.
68+
- If there is no link, then the 'link' parameter can be excluded.
69+
70+
The project excerpt should now automatically show up on the '/Projects/' page
71+
along with the link to the detailed project page.
72+
73+
#### Change Projects Page Layout
74+
To change the layout of the Projects page itself, you can browse to
75+
`_pages\projects.md` and edit the Liquid code as needed.
76+
77+
#### Projects vs. Open Projects
78+
79+
The Projects page exists in parallel to the Open Projects page
80+
(`_pages\open_projects.md`), and you should add your project details where it
81+
makes more sense.
82+
83+
---
84+
85+
## Research
86+
87+
The [Research Areas] page lists the areas of research that Compiler Research Group is focused on.
88+
89+
#### Excerpt vs. Detailed Page
90+
91+
Please add a short excerpt to introduce the research area.
92+
93+
It is required to add a hyperlink to the heading of the topic, to link to an internal or external page that further explores the technical details of the Research Area, along with examples and associated projects.
94+
95+
#### Does it qualify as a Research Area?
96+
97+
Before adding a topic to this page, please consider (and discuss with the Compiler Research team) if the topic qualifies as a research area or if it is more of a [Project] that can be linked to an existing Research Area.
98+
99+
---
100+
101+
## Projects
102+
103+
The [Projects Page] is populated by iterating through the [Projects List] YML file. The sequence followed in the YML file is the sequence used to list down the projects on the Projects Page.
104+
105+
To add a new project, simply update the [Projects List] YML file. The `link` parameter should ideally include the link to the project's GitHub repository.
106+
107+
---
108+
109+
## Results
110+
111+
### Publications
112+
113+
The [Publications Page] iterates and sorts the list of publications saved in the [Publications List] YML file. Simply add a new publication to the YML file and it will be automatically sorted based on the relevant parameters.
114+
115+
### Presentations
116+
117+
The [Presentations Page] iterates and sorts the list of presentations saved in the [Presentations List] YML file. Simply add a new presentation to the YML file and it will be automatically sorted based on the relevant parameters.
118+
119+
### Student Success Stories
120+
121+
The [Student Success Stories] is a simple markdown file. New success stories can be added sequentially to the markdown.
122+
123+
Please make sure to link the **student's Github profile** and include the relevant mentor/institution names under the **"Credits"** heading.
124+
125+
### Tutorials
126+
127+
The [Tutorials Page] iterates and sorts the list of publications saved in the [Tutorials List] YML file. Simply add an abstract for the tutorial and link to the actual tutorial page in the YML file and it will be automatically sorted based on the relevant parameters.
128+
129+
If the tutorial page doesn't already exist outside of the Compiler Research website, then it can be created as a markdown file under the `_pages` directory.
130+
131+
### Releases
132+
133+
The [Releases Page] is populated by iterating through the [Releases List] YML file. The sequence followed in the YML file is the sequence used to list down the projects on the Projects Page.
134+
135+
To add a new release's information, simply update the [Releases List] YML file.
136+
137+
> Note that there is a [Software Releases widget] on the Home Page that lists the **top 5 items** from the `releases.yml` file. This is a static widget with a fixed height of 300 pixels. Each time the [Releases List] is updated, please test the widget on the homepage to make sure that the fetched text doesn't overflow from the widget.
138+
139+
### News
140+
141+
The [News Page] is populated by iterating through the [News List] YML file. The sequence followed in the YML file is the sequence used to list down the projects on the Projects Page.
142+
143+
To add a new release's information, simply update the [News List] YML file.
144+
145+
> Note that there is a [news widget] on the Home Page that lists the **top 3 items** from the `releases.yml` file. This is a static widget with a fixed height of 300 pixels. Each time the [News List] is updated, please test the widget on the homepage to make sure that the fetched text doesn't overflow from the widget.
146+
147+
---
148+
149+
## Teams
150+
151+
To add yourself to the Teams page, create a PR like [this one]. Simply add relevant details to the [Contributors List] YML file and add a photo in the `images/team` folder.
152+
153+
---
154+
155+
## Join Us
156+
157+
### Careers
158+
159+
The [Careers Page] is a simple markdown file, that can be edited as needed to include new and upcoming career opportunities.
160+
161+
### Project Meetings
162+
163+
The [Project Meetings Page] iterates and sorts the list of project meetings saved in the [Project Meetings List] YML file. Simply add new project meeting details to the YML file and it will be automatically sorted based on the relevant parameters.
164+
165+
Please make sure to **include a PDF of the presentation slides** in the `/assets/presentations` folder and link to it in the `agenda` > `slides` parameter in the `meetinglist.yml` file.
166+
167+
> Note that there is a [project meetings widget] on the Home Page that lists the **top 3 items** from the `meetinglist.yml` file. This is a static widget with a fixed height of 300 pixels. Each time the [Project Meetings List] is updated, please test the widget on the homepage to make sure that the fetched text doesn't overflow from the widget.
168+
169+
### Team Meetings
170+
171+
The [Team Meetings Page] is populated by iterating through the [Team Meetings List] YML file. The sequence followed in the YML file is the sequence used to list the meetings on the Team Meetings Page.
172+
173+
### Open Projects
174+
175+
The [Open Projects Page] is populated by iterating through the [Open Projects List] YML file. The sequence followed in the YML file is the sequence used to list the meetings on the Team Meetings Page.
176+
177+
Note that if you don't populate the `status` parameter in the YML file, then the project will not be listed on the Open Projects page.
178+
179+
> Note that there is a [open projects widget] on the Home Page that lists the **top 4 items** from the `openprojectlist.yml` file. This is a static widget with a fixed height of 300 pixels. Each time the [Open Projects List] is updated, please test the widget on the homepage to make sure that the fetched text doesn't overflow from the widget.
180+
181+
### Follow Us
182+
183+
This is a static external link to Compiler Research Organization's LinkedIn Group. This should only be updated by admins in case of a change in the LinkedIn group.
184+
185+
---
186+
187+
## Blog
188+
189+
### Blogs List Layout
190+
191+
To update the look and feel of the listed blog, please see the [Blog Post Card] file.
192+
193+
### Add a New Blog Post
194+
195+
##### How to Add a New Blog Post
196+
197+
To add a new Blog post, add a new markdown file under `_posts` and add any referenced images to the `/images/blog` folder, as shown in [PR 219].
198+
199+
> Note that there is a [latest blog widget] on the Home Page that lists the to blog post from the `_posts` directory. This is a static widget with a fixed height of 500 pixels. Each time there is a new blog file (e.g., yyyy-mm-dd-blog-name.md) added to the `_posts` directory, please test the widget on the homepage to make sure that the fetched text, especially the blog excerpt doesn't overflow from the widget.
200+
201+
##### File Naming Conventions
202+
203+
Please note the naming convention of the blog file, for example: `yyyy-mm-yy-full-blog-title.md`.
204+
205+
It is also recommended to name images so they can easily be associated with the blog post, for example: `yyyy-mm-yy-short-blog-title-img1.png` and `yyyy-mm-yy-short-blog-title-img2.png`.
206+
207+
##### Front Matter for Blogs
208+
209+
Please see the sample [Front Matter] below and use as many of the parameters as applicable.
210+
211+
```
212+
---
213+
title: "Your Post Title"
214+
layout: post
215+
excerpt: "A Short Paragraph to Display on Blogs List page"
216+
sitemap: false
217+
author: Your Name
218+
permalink: blogs/blog-keywords/
219+
banner_image: /images/blog/banner-or-other-thumbnail-image.jpg
220+
date: yyyy-mm-dd
221+
tags: ad
222+
---
223+
```
224+
225+
Where,
226+
227+
- title: This title overrides the default Jekyll behavior of using a filename for Blog Titles, using this string instead.
228+
- layout: This should always include the value `post`.
229+
- excerpt: A Short Paragraph to display on the Blogs List page. It should be roughly 2-3 lines. Test on localhost to see how it looks on the `/blog/` page.
230+
- sitemap: This should always include the value `false`.
231+
- author: Your Name
232+
- permalink: This will make the exact link/URL of the blog post. Carefully use keywords that are relevant to the blog's SEO and preferably use 1 to 3 keywords to avoid making the URL too long.
233+
- banner_image: This image will be shown in a square aspect ratio on the Blog List page (`/blog/`). It can be one of the images already included in the article, or preferably, a different one (use websites like pexel.com to get royalty-free, relevant images in low resolution (for a small-sized image that loads quickly)).
234+
- date: This is an important field since blogs are sorted based on this date. If you don't want your post to appear on the top of the blog list, try an older date to move it downwards.
235+
tags: Enter relevant keywords that should be associated with the blog post. These tags are shown as buttons under each blog post and a reader can click on them to view other posts related to that tag. Please see the blogs list page for relevant tags before creating a new one, since each tag and its related posts are listed on the `compiler-research.org/tags/` page, which can become a mess if the number of tags is not kept to a minimum.
236+
237+
238+
239+
240+
241+
242+
243+
[home.md]: /_pages/home.md
244+
[homepage layout]: /_layouts/homelay.html
245+
[pages]: /_pages/
246+
[Layouts]: /_layouts/
247+
[BootStrap 3.3 Components Documentation]: https://getbootstrap.com/docs/3.3/components/
248+
[Jumbotron]: /_includes/jumbotron.html
249+
[Thumbnails]: /_includes/thumbnails.html
250+
[Open Projects]: /_includes/open-projects.html
251+
[open projects widget]: /_includes/open-projects.html
252+
[Project Meetings]: /_includes/project-meetings.html
253+
[Releases]: /_includes/releases.html
254+
[News]: /_includes/news.html
255+
[Blog Widget]: /_includes/blog_widget.html
256+
[Homelay]: /_layouts/homelay.html
257+
[Research Areas]: /_pages/research.md
258+
[Project]: /_data/projects.yml
259+
[Projects Page]: /_pages/projects.md
260+
[Projects List]: /_data/projects.yml
261+
[Publications Page]: /_pages/publications.md
262+
[Publications List]: /_data/publist.yml
263+
[Presentations Page]: /_pages/presentations.md
264+
[Presentations List]: /_data/preslist.yml
265+
[Student Success Stories]: /_pages/stories.md
266+
[Tutorials Page]: /_pages/tutorials.md
267+
[Tutorials List]: /_data/tutorialslist.yml
268+
[Releases Page]: /_pages/releases.md
269+
[Releases List]: /_data/releases.yml
270+
[Software Releases widget]: /_includes/releases.html
271+
[News Page]: /_pages/allnews.md
272+
[News List]: /_data/news.yml
273+
[news widget]: /_includes/news.html
274+
[this one]: https://github.com/compiler-research/compiler-research.github.io/pull/195
275+
[Careers Page]: /_pages/careers.md
276+
[Project Meetings Page]: /_pages/meetings.md
277+
[Project Meetings List]: /_data/meetinglist.yml
278+
[project meetings widget]: /_includes/project-meetings.html
279+
[Team Meetings Page]: /_pages/team_meetings.md
280+
[Team Meetings List]: /_data/standing_meetings.yml
281+
[Blog Post Card]: /_includes/blog-post-card.html
282+
[PR 219]: https://github.com/compiler-research/compiler-research.github.io/pull/219
283+
[Front Matter]: https://jekyllrb.com/docs/front-matter/
284+
[latest blog widget]: /_includes/blog_widget.html

README.md

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -135,32 +135,10 @@ docker run --rm -v "$PWD:/srv/jekyll" \
135135

136136
## Guide to Making Changes to the Website
137137

138-
### Adding a Project to /projects/ directory on the Website
139-
140-
It is possible to
141-
142-
- add a new page with a lot of project details (e.g.,
143-
`\_pages\testproject.md`) and then add the project excerpt to the projects
144-
directory `_data\projects.yml`, or
145-
146-
- you can simply add the project excerpt to the projects directory
147-
`_data\projects.yml` if there aren't enough details available for the project.
148-
149-
Next, use the `link` attribute in the `projects.yml` file to define the link
150-
to the detailed project page (if you created this in the previous step).
151-
152-
The project excerpt should now automatically show up on the '/Projects/' page
153-
along with the link to the detailed project page.
154-
155-
To change the layout of the Projects page itself, you can browse to
156-
`_pages\projects.md` and edit the Liquid code as needed.
157-
158-
> Please note that the Projects page exists in parallel to the Open Projects
159-
> page (`_pages\open_projects.md`), and you should add your project details
160-
> where it makes more sense.
138+
Before making any changes to the Compiler Research website, please view the [Contibution Guide] to understand the existing site structure.
161139

162140

163141
[installation]: https://jekyllrb.com/docs/installation/windows/
164142
[RubyInstaller Downloads]: https://rubyinstaller.org/downloads/
165-
143+
[Contibution Guide]: https://github.com/compiler-research/compiler-research.github.io/blob/master/CONTRIBUTING.md
166144

0 commit comments

Comments
 (0)