Deployment of DSS web page
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:Professorwhere Professorson’s dblp entry is athttps://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.