The DSS Research Group Website

Guidelines for accessing the web server of the DSS page

The public link of the web site is: https://dss.sdu.dk/

Here are the details to gain access.

Login into SDU network. From your machine within SDU type in a shell:

ssh-keygen -t ed25519 -b 521 -f ~/.ssh/id_ed25519_[yourname]
ssh-copy-id -i ~/.ssh/id_ed25519_[yourname] deployer@datascience.srv.sdu.dk

where [yourname] is any identifier of your choice.

Note, this should only work if you do these operations from inside SDU net.

Copy to your ~/.ssh/config the following lines:

host datascience
hostname datascience.srv.sdu.dk
identityfile ~/.ssh/id_ed25519_yourname
user deployer

Save the file and execute:

chmod 600 ~/.ssh/config

Guidelines for synchronizing your files with the server

Initial download

We use git to maintain synchronized the files between your local computer and the web server. For the initial download of the full repository type:

git clone datascience:~/dss-web.git

This command will generate a directory called dss-web on your local computer. You need to do this only once.

Whenever Git records changes it also wants to store who did it. To set this information up once and for all on a machine you can execute the following commands:

git config --global user.name "Your Name"
git config --global user.email "you@somewhere.com"

If you have not done this, Git will complain when it would otherwise have used the information.

Work flow

In the following we assume that you are inside the directory dss-web. Before starting to modify any file we want to make sure that we have the latest versions of the files. We do this by pulling down from the server the changes that might have happened since the last time we checked:

git pull

You can review who made the last changes with the command:

git log

You can now make changes and commit them before pushing them to the server.

You can see the status at any time with the command:

git status

To commit all changes type.

git commit -am "a message explaining the changes"

If you added new files, you need first to add them to the synchronization via:

git add filename

Then to push the changes to the server, type:

git push

Creating the static page

The files you work on are the sources of the web page. The sources are compiled in html files.

It would be good checking that the compilation succeeds by building the site locally before pushing. When you push, the site is build remotely. Locally, the web pages constructed statically are put in _site. This directory is not tracked (synchronised).

To compile and see the changes locally, you need first to install jekyll: Follow the instructions from there.

Then from within the root directory of DSS web site:

bundle exec jekyll build

Or

make page

Finally you can see it via:

make serve

Guidelines for website content management

Writing static pages

Static pages are in the root folder as markdown (.md) files. Unless some html tags are needed, you can directly edit the content using the markdown syntax. In case you need to add html elements and still want to write content inside of them in markdown, just remember to add the markdown="1" attribute to the HTML tag.

Writing event posts

Event posts are found in _events folder within the root. There, a post is a separate .md file named following the convention yyyy-mm-dd-title.md. The title is not important and the only constraint is that the first part of the name corresponds to a date formatted follow the previous rule.

The header of each file follows the convention below, which is self-explanatory. Fields "place" and "date_end" are optional. Dates may be limited to year, month, etc. In the main part of the post, please use the tag `

` to set the limit of the post excerpt, used to preview the article.

---
layout: post
title: "My Fancy Title"
place: "Odense (DK)"
date: 2018-03-10 14:00:00
date_end: 2018-03-12 14:00:00
---

The posting date is important. It must preceed the time of compilation otherwise the page will not show.

Adding people

People entries are stored inside the _data/people folder, within the root, in json files. Each person file has a name of form "R_FULLNAME" where "R" is "A" for members with faculy positions, "B" for postdocs, and "C" for students. Each person follows the schema

{
  "name" : "NAME",
  "id" : "ID",
  "role" : "ROLE",
  "website" : "URL",
  "email" : "EMAIL ADDRESS",
  "phone" : "PHONE NUMBER",
  "dblp" : "ID",
  "google_scholar" : "USER",
  "orcid" : "ID",
  "github" : "USER",
  "photo" : "URL",
  "research_topics" : [ "TOPIC1", "TOPIC2" ]
}

Where

  • "id" is used to add an id attribute in the grants page to link directly a person from other pages (e.g, [Professor Professorson](/people#pp) where "pp" is the identifier for Professor Professorson);

  • "dblp" is optional and contains a URL to the person’s entry on DBLP under “dblp.uni-trier.de/pers/hd/” (e.g, p/Professorson:Professor where Professorson’s dblp entry is at https://dblp.uni-trier.de/pers/hd/p/Professorson:Professor);

  • "google_scholar" is optional and contains the person’s profile identifier on Google Scholar (the argument "user" in the profile URL);

  • "orcid" is optional and contains the person’s ORCID identifier;

People images can be included in the folder images/people under the root. To link the image in the json entry use the path from the root to the file, e.g, /images/people/PHOTO.jpg.

Adding grants

Not currently active but we could make it active.

Grant entries are stored inside the _data folder, within the root, in a json file named grants.json. Each grant in the file follows the schema

{
  "title" : "NAME",
  "id" : "NAME",
  "participants" : [ 
    { 
      "name" : "NAME",
      "role" : "ROLE",
      "affiliation" : "AFF" 
    }
  ],
  "website" : "LINK",
  "number" : "STRING",
  "period" : { "start": "STRING", "end": "STRING" },
  "foundation" : "STRING",
  "amount" : "STRING"
}

The fields above should be self-explanatory. "id" is used to add an id attribute in the grants page to link directly a specific grant from other pages.