This document provides instructions about the S&T website.
Table of Contents:
- Structure of the website
- General instructions
- Common operations
The website is structured as follow:
.
|-- _complementary/ => Complementary materials for papers
|-- _data/ => Data to populate lists
| └── menus/ => Entries for side menus
|
|-- _events/ => Events
|-- _includes/ => Files to be commonly included (header, footer)
|-- _layouts/ => Custom layouts for pages
|-- _news/ => News
|-- _projects/ => Projects
|-- _tools/ => Tools
|-- _topics/ => Topics (to appear in homepage)
|-- assets/ => Assets for the website (CSS, common images)
| └── css/ => Stylesheets
| └── images/ => Common images for easy inclusion
| └── logos/ => Logos that are commonly used
|
|-- _config.yml => Configuration file of the website
|-- 404.md => Custom 404 error page
|-- collaborations.md => Collaborations page
|-- events.md => Events page
|-- index.md => Homepage
|-- projects.md => List of projects
|-- teaching.md => Teaching page
└── tools.md => List of tools
Some folders (_complementary
, _projects
, _tools
and _topics
) also contain an assets
subfolder where to upload images or attachments that are specifically related to a complementary material, project, tool or topic, respectively. Further information about attachment management can be found below.
This website is composed of several markdown pages that are automatically compiled and converted to HTML. Some templates (listed below) will guide through the creation of new pages. To update the website, you just need to push your changes to the repository; after a while the website will update accordingly.
On top of every page, a YAML preamble (started and ended with ---
) defines some metadata of the page (like the title and the layout to be used) as well as custom variables. Each layout requires some variables, while other may be optionally assigned; variables' values will then be parsed and placed inside the webpage according to the specific layout. Please contact Marco should you need some extra fields in any layout.
Only plaintext is allowed inside YAML preambles, while common markdown or HTML tags can be used outside.
Example of YAML syntax:
---
# Only plaintext is allowed in YAML preambles
variable1: normal text
variable2: "text with special characters like: colons"
variable3: >
Multiline text
that can stand on
different lines
until the next assignment appears
variable4: other normal text
---
Here you can use both markdown and HTML syntax.
Common images can be found in and used from the folder assets/images
(e.g., logos are in assets/images/logos
), without uploading them over and over.
Custom images or attachments specifically related to complementary materials, projects or tools should be uploaded in the related assets
folder inside a new folder whose name must coincide with that of the related complementary material/project/tool page.
Custom images or attachments specifically related to events, instead, should be uploaded in a new assets
folder inside the event folder.
Specifically:
-
for complementary materials: inside the folder
_complementary/assets/[ConferenceAcronym][Year]/[CustomNameOfFiles]
. -
for events: inside the folder
_events/[EventAcronym]/assets/[CustomNameOfFiles]
. -
for projects: inside the folder
_projects/assets/[ProjectName]/[CustomNameOfFiles]
. -
for tools: inside the folder
_tools/assets/[ToolName]/[CustomNameOfFiles]
.
The following operations can be done in any page, regardless the category.
To add some images, just add the following structure in the related page:
images:
# Repeat the following structure to add more images
- title: # Title of the image
source: # Path to the image
Images will be displayed at the end of the page in a lightbox structure (i.e., a popup will open and display the image bigger when clicking on it).
To add a list of involved people to a specific page, just open the _data/people.yml
file and check whether the person (and the correct affiliation) is already listed. If not, just add it through the following structure:
- id: # Choose a unique ID for the person, will be referenced later
name: # Name
surname: # Surname
role: # Role (optional)
affiliations:
# Repeat the following structure to add more affiliations
- unit: # Unit or Department (optional)
institution: # Institution
place: # Place of the institution
email: # Email
website: # Website (optional)
image: # URL of a picture (optional)
usernameFBK: # FBK username (for retrieving the picture, optional)
Then, insert a new line with a dash (-) followed by the assigned "id" under the people
structure in the intended page, for instance:
people:
- id1
- id2
- [...]
Important: if the person is already listed in the people.yml
file but with a former affiliation, please don't update the existent entry, as this would cause every page referring to the entry to update accordingly; instead, add a new entry with a different ID.
To add a list of related events to a specific page, they must be listed in the _data/events.yml
file. Thus, insert a new line with a dash (-) followed by the assigned "id" under the events
structure in the intended page, for instance:
events:
- id1
- id2
- [...]
To add a list of related tools to a specific page, they must be listed in the _data/tools.yml
file. Thus, insert a new line with a dash (-) followed by the assigned "id" under the tools
structure in the intended page, for instance:
tools:
- id1
- id2
- [...]
To add a list of related publications to a specific page, just open the _data/publications.yml
file and check whether the publication is already listed (the list is sorted by year). If not, just add it through the following structure:
- id: # Choose a unique ID for the publication, will be referenced later
title: # Title of the publication
authors: # Authors of the publication
destination: # Unique ID of the destination (see below)
destinationAddon: # Addon to the destination journal or proceedings (e.g., volume, pages) (optional)
year: # Year of the publication
doi: # DOI of the publication (optional)
urlComplementary: # URL to complementary material (optional)
urlNews: # URL to the news of accepted paper on this website (optional)
Then, insert a new line with a dash (-) followed by the assigned "id" under the publications
structure in the intended page, for instance:
publications:
- id1
- id2
- [...]
As explained in the previous section, each publication should be linked to the related destination (conference, workshop or journal) through the destination
field.
To add a specific destination, just open the _data/destinations.yml
file and check whether the destination is already listed (journals are on the top, while conferences and workshops are sorted by year). If not, just add it through the following structure:
- id: # Choose a unique ID for the destination, will be referenced later
name: # Name of the journal, conference or workshop
proceedings: # Name of the proceedings (optional, only if different from "name")
acronym: # Acronym of the journal, conference or workshop
url: # URL of the journal, conference or workshop
type: # Type of destination (among conference, journal and workshop)
location: # Location of the destination (if applicable, e.g., not for journal)
startDate: # Starting date of the destination (if applicable, e.g., not for journal)
endDate: # Ending date of the destination (if applicable, e.g., not for journal)
Then, insert the assigned "id" in the destination
field within the publications list.
To create a new page for a complementary material, just add a new file [ConferenceAcronym][Year].md
to the _complementary
folder. The content of the file should respect the template.
Guidelines on attachments can be found above.
URL of the new page: https://stfbk.github.io/complementary/[ConferenceAcronym][Year]
.
The page will not be listed on the website (unless explicitly linked to the related publication), but the link can be used in papers or other publications.
The website can show kind of sub-websites for events. To create a new one, just create a new folder named [EventAcronym]/
inside the _events
folder. The main page should be named index.md
, while other side pages can have any name as they will be explicitly linked. The content of the file should respect the template.
Guidelines on attachments can be found above.
To display a menu on the right part of the page (e.g., to link other subpages) you need to create a new file called [EventAcronym].yml
and place it in the _data/menus
folder. The file should have this structure:
- label: # Label to be display on top of the menu
items:
# Repeat the following structure for each page
- name: # Name of the page
link: # Link to the page
The name of this .yml
file should be the value of the menubar
variable in every page related to the event.
Finally, to list the event, you should edit the file _data/events.yml
and append the following structure:
- id: # Choose a unique ID for the event
name: # Name of the event
acronym: # Acronym of the event
startDate: # Start date in YYYY-MM-DD format
endDate: # End date in YYYY-MM-DD format
description: # Description of the event (optional)
url: # URL to the event page (also external)
After this operation, the tool will be listed on the website (inside the Events page).
To list an external event, you should just edit the file _data/events.yml
and append the following structure:
- id: # Choose a unique ID for the event
name: # Name of the event
acronym: # Acronym of the event
startDate: # Start date in YYYY-MM-DD format
endDate: # End date in YYYY-MM-DD format
description: # Description of the event (optional)
url: # URL to the event page (also external)
To create news, just add a new file in the _news
folder with the following name: [yyyy]-[mm]-[dd]-[title-of-the-news-with-dashes].md
, where yyyy
, mm
and dd
refer to the date of the news. The content of the file should respect the template.
URL of the new page: https://stfbk.github.io/news/[yyyy]/[mm]/[dd]/[title-of-the-news-with-dashes]
.
The news will be automatically listed on the website (inside the News page).
To create news about accepted papers, you first need to create the publication (and, maybe, destination) entry as explained here.
Then, just add a new file in the _news
folder with the following name: [yyyy]-[mm]-[dd]-paper-accepted-at-[conference-or-journal-acronym].md
, where yyyy
, mm
and dd
refer to the date of the news. The content of the file should respect the template.
URL of the new page: https://stfbk.github.io/news/[yyyy]/[mm]/[dd]/paper-accepted-at-[conference-or-journal-acronym]
.
The news will be automatically listed on the website (inside the News page) with the papers
tag.
To create news about seminars, just add a new file in the _news
folder with the following name: [yyyy]-[mm]-[dd]-[custom-title-with-dashes].md
(it must contain the word "seminar", e.g., st-seminar-by-roberto-carbone
), where yyyy
, mm
and dd
refer to the date of the news. The content of the file should respect the template.
URL of the new page: https://stfbk.github.io/news/[yyyy]/[mm]/[dd]/[custom-title-with-dashes]
.
The news will be automatically listed on the website (inside the News page) with the seminars
tag.
To create a new page for a project, just add a new file [ProjectName].md
to the _projects
folder. The content of the file should respect the template.
Guidelines on attachments can be found above.
URL of the new page: https://stfbk.github.io/projects/[ProjectName]
.
The project will be automatically listed on the website (inside the Projects page).
To create a new page for a tool, just add a new file [ToolName].md
to the _tools
folder. The content of the file should respect the template.
Guidelines on attachments can be found above.
URL of the new page: https://stfbk.github.io/tools/[ToolName]
.
The tool must then be listed by editing the page _data/tools.yml
and appending the following structure:
- id: # Choose a unique ID for the tool
name: # Name of the tool
description: # Description of the tool, will be displayed in the list
urlCode: # URL of the code repository (optional)
urlDocumentation: # URL of the documentation page (optional)
In this case, the urlDocumentation
field would be the URL of the page (see above).
After this operation, the tool will be listed on the website (inside the Tools page).
To list a tool whose documentation is not in the new website, just edit the page _data/tools.md
and appending the following structure:
- id: # Choose a unique ID for the tool
name: # Name of the tool
description: # Description of the tool, will be displayed in the list
urlCode: # URL of the code repository (optional)
urlDocumentation: # URL of the documentation page (optional)
URLs can also point to external resources (as previously made websites or external repositories).
Each of the topic and spotlights in homepage may contain a list of relevant papers. To add a new one, just follow the instructions above. The pages of the topics will be found in the _topics
folder.