Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • kwarc/kwarc.info/www
  • richardmarcus/www
2 results
Show changes
Commits on Source (1104)
Showing with 420 additions and 124 deletions
......@@ -50,3 +50,8 @@ node_modules
*.toc
*.out
*.nav
auto
# bundle
.bundle
vendor
image: kwarc/jekyll-website-deployer
stages:
- deploy
before_script:
# setup locales
- echo "en_US UTF-8" > /etc/locale.gen
- which locale-gen || ( apt-get update -y && apt-get install locales )
- export LANG=en_US.UTF-8
- export LANGUAGE=en_US:en
- export LC_ALL=en_US.UTF-8
# install ssh-agent, unless already there
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
# install rsync, unless already there
- 'which rsync || ( apt-get update -y && apt-get install rsync -y )'
# install bundler, unless already there
- 'which bundle || ( gem install bundler )'
# and install the bundle
- bundle install
# setup ssh agent with the private key
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
deploy_staging:
stage: deploy
script:
# build the website
- bundle exec jekyll build -d _site
# copy over all the files into the deployment folder
- cd _site && rsync -rv -e "ssh -p $SSH_DEPLOY_PORT" --checksum --exclude='Gemfile' --delete-excluded --delete ./ root@deploy.kwarc.info:/root/data --delete
only:
- master
\ No newline at end of file
kwarc.info
source 'https://rubygems.org'
gem 'github-pages', group: :jekyll_plugins
gem "sprockets", "~> 3.7"
gem "webrick", "~> 1.7"
# Fix ffi version to fix the following bug:
# ffi-1.17.0-x86_64-linux-musl requires rubygems version >= 3.3.22, which is
# incompatible with the current version, 2.7.6.2
gem "ffi", "< 1.17.0"
......@@ -23,9 +23,8 @@ See the above links for details.
* `projects/*.md`: the KWARC project descriptions
* `public/*`: all static files (images, js, css, etc)
* `public/*.md`: descriptions of the research areas
* `students/*.md`: pages for students
* `systems/*.md`: descriptions of the KWARC sytems
* `teaching/*.md`: KWARC courses (this may be obsoleted by univis)
* `courses/*.md`: KWARC courses (this may be obsoleted by univis)
## Performance
This jekyll page is tuned in order to build as fast as possible.
......@@ -34,13 +33,14 @@ During the evolution of the website, the build time has changed dramatically.
It used to take around 5 minutes to build, with a few optimizations it now only takes up 15 seconds.
The biggest slowdowns were:
* unneeded iterations
* iterations within iterations (usually not required, if one thinks carefully)
* `if` conditions within a loop, instead of a `where` clause
* full iteration to extract a single item (use `first` instead)
* repeated sorting of `site.pages` by the same `menu_order` key (instead sort this once and use a global variable)
* multiple chained `if`s instead of a single `and`
* unneeded variable assignments (these seem to take a lot of time in liquid)
* unneeded iterations
* iterations within iterations (usually not required, if one thinks carefully)
* `if` conditions within a loop, instead of a `where` clause
* full iteration to extract a single item (use `first` instead)
* repeated sorting of `site.pages` by the same `menu_order` key (instead sort this once and use a global variable)
* multiple chained `if`s instead of a single `and`
* unneeded variable assignments (these seem to take a lot of time in liquid)
## How to use Jekyll to test/build this website
......@@ -73,6 +73,7 @@ The menu of the page is defined in the ``_config.yml`` file.
It consists of a set of items, that are defined by the following keys:
* `url` - The (internal or external) url to the page. If internal, must be relative to the root directory.
* `active` - URL to a folder under which the item should automatically be expanded (if applicable).
* `folder` - Instead of using `url`, the `folder` can be used to create a submenu pointing to a specific folder.
* `items` - A list of items for submenus.
* `external` - If set to `true`, assumes that `url` is external to the page.
......@@ -93,11 +94,11 @@ It consists of a set of items, that are defined by the following keys:
**Submenus**. The menu allows (up to) one level of submenus. There are three such cases:
1. An item specifies the `folder` key. In this case all pages in the given folder are automatically added. The frontmatter is used for the specification.
1. An item specifies the `folder` key. In this case all pages in the given folder are automatically added. The frontmatter is used for the specification. Items with the `hidden` key in frontmatter set to true are automatically excluded.
2. An item specifies the `items` key. Here the items are used accordingly.
3. An item specifies both the `folder` and `items` keys. The items for both cases are automatically merged.
Because submenus are not clickable, the `url` for submenus is ignored.
Because submenus are not clickable, the `url` for submenus is ignored when building the menu.
Furthermore, if these are mixed between folders and static items, the folders will always show first.
```yaml
......@@ -115,6 +116,11 @@ Furthermore, if these are mixed between folders and static items, the folders wi
url: 'https://cs.fau.de/'
```
A submenu is automatically expanded if any of the submenu items inside it are clicked.
Alternatively, if the menu item contains an `active` key, it is checked as well.
Furthermore, a menu may have the `url` key. If it is given, upon clicking the menu item, the given (internal) url is opened instead of opening the menu.
### Working locally
If you want to do more than the occasional editing, you'll soon realise GitHub's editor and preview are too limited.
......
permalink: pretty
permalink: /news/:year/:month/:day/:title/
# Setup
title: KWARC
tagline: 'Knowledge Adaptation and Reasoning for Content '
description: 'The Research Group of the Professorship for Knowledge Representation and Processing at <a href="https://fau.de" class="black-text">FAU Erlangen-Nürnberg</a> - <a href="https://cs.fau.de" class="black-text">Computer Science</a> (previously <a href="https://jacobs-university.de/" class="black-text">Jacobs University</a>). '
description: 'The Research Group of the Professorship for Knowledge Representation and Processing at <a href="https://fau.de" class="black-text">FAU Erlangen-Nürnberg</a> - <a href="https://cs.fau.de" class="black-text">Computer Science</a>. '
url: https://kwarc.info
baseurl: ''
paginate: 10
paginate_path: "/news/page:num/"
blog_path: "/news/"
future: True
gems:
- jemoji
encoding: utf-8
plugins:
- jekyll-paginate
- jekyll-github-metadata
- jekyll-redirect-from
exclude:
- 'run' # because Michael
- 'public/materialize/materialize-src/*'
- 'public/*.md'
- 'public/*.html'
......@@ -27,16 +28,63 @@ exclude:
author:
name: 'The KWARC Group'
url: http://kwarc.info
email: kohlhase@kwarc.info
email: michael.kohlhase@fau.de
semester: SS17
semesters:
former:
- Fall03
- Spring04
- Fall04
- Spring05
- Fall04
- Spring06
- Fall06
- Spring07
- Fall07
- Spring08
- Fall08
- Spring09
- Fall09
- Spring10
- Fall10
- Spring11
- Fall11
- Spring12
- Fall12
- Spring13
- Fall13
- Intersession14
- Spring14
- Fall14
- Spring15
- Fall15
- Spring16
- Fall16
- Spring17
- WS16/17
- SS17
- WS17/18
- SS18
- WS18/19
- SS19
- WS19/20
- SS20
- WS20/21
- SS21
- WS21/22
- SS22
- WS22/23
- SS23
current: WS24/25
upcoming: SS25
# Custom vars
version: 0.3.0
repository: https://gl.kwarc.info/kwarc/website
repository: https://gl.kwarc.info/kwarc/kwarc.info/www
tagfolder: tag
materialize: materialize
material-icons: material-icons
jquery: jquery-3.2.1
fontawesome: font-awesome-4.7.0
......@@ -44,59 +92,98 @@ fontawesome: font-awesome-4.7.0
menu:
- title: 'News'
url: '/news/'
active: '/news/'
- title: 'People'
active: '/people/'
url: '/people/'
items:
- title: 'Current Members'
url: '/people/'
- title: 'Former Members'
url: '/people/former/'
- title: 'Research'
url: '/research/'
folder: 'research'
items:
- title: 'Bibliography'
external: true
url: 'https://kwarc.github.io/bibs/'
- title: 'Research'
folder: 'research'
- title: 'Systems'
folder: 'systems'
active: '/systems/'
url: '/systems/'
items:
- title: 'Orphaned Systems'
url: '/systems/orphans/'
- title: 'Historic Systems'
url: '/systems/historic/'
- title: 'Projects'
folder: 'projects'
- title: '4Students'
folder: 'students'
- title: 'Teaching'
folder: 'teaching'
active: '/projects/'
url: '/projects/'
items:
- title: 'Completed Projects'
url: '/projects/completed/'
- title: 'Courses & Theses'
url: '/courses/'
active: '/courses/'
items:
- title: 'Overview (D)'
url: '/courses/overview/'
- title: 'Former Courses'
url: '/courses/former/'
- title: 'Upcoming Courses'
url: '/courses/upcoming/'
- title: 'Thesis Topics & Projects'
url: '/courses/topics/'
- title: 'Completed Theses'
url: '/courses/theses/'
- title: 'Events'
url: '/events/'
active: '/events/'
- title: 'Hiring'
url: '/hiring/'
active: '/hiring/'
- title: 'Contact'
url: '/contact/'
# Settings for compressing everything
compress_html:
clippings: []
comments: ["<!-- ", " -->"]
# roles for people and their name
roles:
-
-
id: faculty
name: Faculty
-
id: postdoc
name: Postdocs
-
name: Postdoc
-
id: phd-student
name: "Phd Students"
-
name: "Phd Student"
-
id: master-student
name: "Master Students"
name: "Master Student"
-
id: bachelor-student
name: "Bachelor Students"
name: "Bachelor Student"
-
id: support-staff
name: "Technical & Support Staff"
# default values -- the one for all **must** be first
# default values -- the one for all **must** be first
defaults:
-
scope:
path: ""
path: ""
values:
menu_hidden: false
menu_order: 100
external: false
\ No newline at end of file
external: false
{% comment %}
Renders a link to a single course. Expects 'item' as a parameter.
{% endcomment %}
<li class="collection-item">
<a href="{{include.item.url}}" class="title">{{include.item.title}}</a>
</li>
\ No newline at end of file
{% comment %}
Properly formats the date in yyyy[-mm] format.
Expects 'date' to be formatted as an argument.
{% endcomment %}
{% assign dateparts = include.date | split: "-" %}
{% assign year = dateparts[0] %}
{% assign month = dateparts[1] %}
{% if month == '01' %}
January
{% elsif month == '02' %}
February
{% elsif month == '03' %}
March
{% elsif month == '04' %}
April
{% elsif month == '05' %}
May
{% elsif month == '06' %}
June
{% elsif month == '07' %}
July
{% elsif month == '08' %}
August
{% elsif month == '09' %}
September
{% elsif month == '10' %}
October
{% elsif month == '11' %}
November
{% elsif month == '12' %}
December
{% endif %}
{{year}}
\ No newline at end of file
......@@ -14,18 +14,18 @@
<i class="fa fa-github" aria-hidden="true"></i> GitHub
</a>
<a href="{{ site.baseurl }}/atom.xml" title="Atom Feed" class="waves-effect waves-teal btn-flat">
<a href="{{site.baseurl}}/atom.xml" title="Atom Feed" class="waves-effect waves-teal btn-flat">
<i class="fa fa-rss" aria-hidden="true"></i> Atom Feed
</a>
</div>
<div class="col l2 s12">
<h5 class="white-text">Editing</h5>
<a href="{{site.repository}}/edit/master/{% if page.source %}{{ page.source }}{% else %}{{ page.path }}{% endif %}" title="Edit this page" class="waves-effect waves-teal btn-flat">
<a href="{{site.repository}}/-/edit/master/{% if page.source %}{{ page.source }}{% else %}{{ page.path }}{% endif %}" title="Edit this page" class="waves-effect waves-teal btn-flat">
<i class="fa fa-pencil-square-o" aria-hidden="true"></i> Edit this page
</a>
<a href="https://gl.kwarc.info/kwarc/website/#repository-holding-the-sources-of-the-KWARC.info-website" title="How to edit" class="waves-effect waves-teal btn-flat">
<a href="{{site.repository}}/#repository-holding-the-sources-of-the-kwarcinfo-website"
title="How to edit" class="waves-effect waves-teal btn-flat">
<i class="fa fa-question-circle" aria-hidden="true"></i> How to edit
</a>
</div>
......@@ -34,11 +34,9 @@
</div>
<div class="footer-copyright">
<div class="container">
&copy; 2017 The KWARC Group
<span class="right">
<a href="mailto:{{ site.author.email }}" title="E-Mail" class="black-text">
<i class="fa fa-envelope" aria-hidden="true"></i> Contact E-Mail
</a>
&copy; {{ site.time | date: '%Y' }} The KWARC Group
<span class="right legal-links">
<script src="https://privacy.kwarc.info/legal.js"></script>
</span>
</div>
</div>
......
......@@ -14,8 +14,8 @@
{% endif %}
</title>
<!--Import Google Icon Font -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<!-- Material CSS font -->
<link type="text/css" rel="stylesheet" href="{{ site.baseurl }}/public/{{ site.material-icons }}/font.css">
<!-- Import materialize -->
<link type="text/css" rel="stylesheet" href="{{ site.baseurl }}/public/{{ site.materialize }}/css/materialize.min.css" media="screen,projection"/>
......
<!-- The page title -->
<nav class="top-nav">
<nav class="top-nav nav-extended">
<div class="container">
<div class="nav-wrapper">
<a class="page-title">
......@@ -19,15 +19,18 @@
<ul id="kwarc-nav" class="side-nav fixed">
<li>
<div class="userView">
<a href="{{ site.baseurl }}/"><img src="{{ site.baseurl }}/public/kwarc_logo.svg" width="180px" height="180px"></a>
<a href="{{ site.baseurl }}/">
<img src="{{ site.baseurl }}/public/kwarc_logo.svg" width="180px" height="180px" />
<img src="{{ site.baseurl }}/public/fau_logo_hoch.svg" width="180px" style="position: relative; left: 30px; "/>
</a>
</div>
</li>
{% for item in site.menu | sort:"menu_order" %}
{% if (item.folder or item.items) %}
{% include menu_sub.html %}
{% include menu_sub.html item=item %}
{% else %}
{% include menu_single.html %}
{% include menu_single.html item=item %}
{% endif %}
{% endfor %}
</ul>
\ No newline at end of file
</ul>
......@@ -2,20 +2,39 @@
This page creates a single (non-submenu) item. It expects `item` as a variable.
{% endcomment %}
{% unless item.menu_hidden %}
{% assign menu_active = false %}
{% assign base_folder = page.url | split: '/' %}
{% assign base_folder = base_folder[1] %}
{% assign represents = include.item.active | split: '/' %}
{% assign represents = represents[1] %}
{% if represents %}
{% if base_folder == represents %}
{% assign menu_active = true %}
{% endif %}
{% endif %}
{% if page.url == include.item.url %}
{% assign menu_active = true %}
{% endif %}
{% unless include.item.menu_hidden %}
<li
{% if page.url == item.url %}class="active"{% endif %}
{% if menu_active %}class="active"{% endif %}
{% if page.url == include.item.url %}class="active"{% endif %}
>
{% if item.external %}
<a href="{{ item.url }}" target="_blank">
{% if include.item.external %}
<a href="{{ include.item.url }}" target="_blank">
{% else %}
<a href="{{ site.baseurl }}{{ item.url }}">
<a href="{{ site.baseurl }}{{ include.item.url }}">
{% endif %}
{% if item.menu_title %}
{{ item.menu_title }}
{% if include.item.menu_title %}
{{ include.item.menu_title }}
{% else %}
{{ item.title }}
{{ include.item.title }}
{% endif %}
</a>
</li>
......
{% comment %}
This page creates a submenu item. It expects an appropriate `item` as argument.
This page creates a submenu item.
It expects an appropriate `item` as argument.
It also expects the global 'sorted_pages' argument.
{% endcomment %}
{% assign item = include.item %}
{% unless item.menu_hidden %}
{% assign base_folder = page.url | split: '/' %}
<!-- if we are in the right folder, we are active -->
{% if base_folder[1] == item.folder %}
{% assign menu_active = true %}
{% else %}
{% assign menu_active = false %}
{% for item in (item.items | where: "url", page.url) %}
{% unless item.external %}
{% assign base_folder = base_folder[1] %}
{% assign represents = item.active | split: '/' %}
{% assign represents = represents[1] %}
{% assign menu_active = false %}
{% if base_folder %}
{% if item.folder %}
{% if base_folder == item.folder %}
{% assign menu_active = true %}
<!-- active because {{item}} -->
{% endunless %}
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{% if represents %}
{% if base_folder == represents %}
{% assign menu_active = true %}
{% endif %}
{% endif %}
{% unless menu_active %}
{% for it in item.items %}
{% if page.url == it.url %}
{% unless it.external %}
{% assign menu_active = true %}
{% endunless %}
{% endif %}
{% endfor %}
{% endunless %}
<!-- Find the current folder -->
{% assign item_folder = item.folder %}
<li class="no-padding">
<ul class="collapsible collapsible-accordion">
<li class="bold">
<a class="collapsible-header {% if menu_active %}active{% endif %}">
<a class="collapsible-header {% if menu_active %}active{% endif %}" {% if item.url %}href="{{item.url}}"{%endif %}>
{% if item.menu_title %}
{{ item.menu_title }}
{% else %}
......@@ -34,22 +53,24 @@
{% endif %}
</a>
<div class="collapsible-body">
<ul>
<ul class='nobullets'>
<!-- If we have folders, iterate over them -->
{% if item.folder %}
{% for item in sorted_pages %}
{% assign sub_components = item.url | split: '/' %}
{% if sub_components[1] == item_folder %}
{% include menu_single.html %}
{% endif %}
{% unless item.hidden %}
{% if sub_components[1] == item_folder %}
{% include menu_single.html item=item %}
{% endif %}
{% endunless %}
{% endfor %}
{% endif %}
<!-- if we have items, iterate over them -->
{% if item.items %}
{% for item in item.items %}
{% include menu_single.html %}
{% include menu_single.html item=item %}
{% endfor %}
{% endif %}
</ul>
......@@ -57,4 +78,4 @@
</li>
</ul>
</li>
{% endunless %}
\ No newline at end of file
{% endunless %}
......@@ -3,6 +3,8 @@
Expects the default jekyll 'paginator' as argument.
{% endcomment %}
{% assign paginator = paginator %}
<ul class="pagination">
<!-- The previous page -->
......
......@@ -3,20 +3,18 @@
It expects the username of the person as the 'person' variable
{% endcomment %}
{% capture purl %}/people/{{person}}/{% endcapture %}
{% capture purl %}/people/{{include.person}}/{% endcapture %}
{% assign pp = site.pages | where: "url", purl | first %}
{% if pp %}
<a href="{{ site.baseurl }}{{purl}}">
<div class="chip">
<img src="{{ site.baseurl }}/{{pp.pic}}">
<img src="{{ site.baseurl }}/{{pp.pic}}"/>
{{pp.fullname}}
</div>
</a>
{% else %}
<a href="{{ site.baseurl }}{{purl}}">
<div class="chip">
{{person}}
</div>
</a>
{% endif %}
\ No newline at end of file
<div class="chip">
{{include.person}}
</div>
{% endif %}
......@@ -3,26 +3,34 @@
Expects 'people' as an argument, representing the list of people to show.
{% endcomment %}
{% assign people = include.people %}
{% for role in site.roles %}
{% assign rollers = people | where: "role", role.id %}
{% if rollers.size > 0 %}
<ul class="collection with-header">
<li class="collection-header"><h4>{{role.name}}</h4></li>
<li class="collection-header">
<h5>{{role.name}}(s)</h5></li>
{% for person in rollers %}
<li class="collection-item avatar">
<img src="/{{person.pic}}" alt="" class="circle">
<a href="{{person.url}}" class="title">{{person.fullname}}</a>
<p>
{% if person.start_date %}
from {{person.start_date}} <br/>
{% endif %}
{% if person.end_date %}
until {{person.end_date}} <br/>
{% endif %}
</p>
{% if person.pic %}<img src="/{{person.pic}}" alt="" class="circle"/>{% endif %}
<a href="{{person.url}}" class="title">{{person.fullname}}</a>
<p>
{% if person.start_date %}
{% unless person.end_date %}
KWARCie since
{% endunless %}
{% include date.html date=person.start_date %}
{% if person.end_date %}
&nbsp;-&nbsp;
{% include date.html date=person.end_date %}
{% endif %}
{% endif %}
</p>
</li>
{% endfor %}
</ul>
{% endif %}
{% endfor %}
\ No newline at end of file
{% endfor %}
......@@ -4,12 +4,11 @@
{% endcomment %}
<li class="collection-item">
<h5>
<a href="{{post.url}}">
{{post.title}} {{post.subtitle}}
</a>
</h5>
<a href="{{include.post.url}}" class="title">
{{include.post.title}} {{include.post.subtitle}}
</a>
{% assign post = page %}
{% include post_meta.html %}
<div>
{% include post_meta.html post=include.post %}
</div>
</li>
\ No newline at end of file
......@@ -5,29 +5,30 @@
by
{% assign person = post.author %}
{% include people_chip.html %}
{% include people_chip.html person=include.post.author %}
on
<div class="chip">
{{ post.date | date_to_string }}
{% if include.post.date %}
{{ include.post.date | date_to_string }}
{% else %}
There is no date
{% endif %}
</div>
{% if post.location %}
{% if include.post.location %}
at
<div class="chip">
{{post.location}}
{{include.post.location}}
</div>
{% endif %}
<br />
in
{% for tag in post.tags %}
{% for tag in include.post.tags %}
<div class="chip">
{{tag}}
</div>
{% endfor %}
\ No newline at end of file
{% endfor %}
{% comment %}
This page creates a single 'chip' for linking to a project.
It expects the name of the project as the 'project' variable
{% endcomment %}
{% capture purl %}/projects/{{include.project}}/{% endcapture %}
{% assign pp = site.pages | where: "url", purl | first %}
{% if pp %}
<a href="{{ site.baseurl }}{{purl}}">
<div class="chip">
{% if pp.logo %}
<img src="{{ site.baseurl }}/{{pp.logo}}"/>
{% endif %}
{{pp.shorttitle}}
</div>
</a>
{% else %}
<div class="chip">
{{include.project}}
</div>
{% endif %}
{% comment %}
Renders a link to a single project or system. Expects 'item' as a parameter.
{% endcomment %}
{% assign item = include.item %}
<li class="collection-item avatar">
{% if item.logo %} <img src="/{{item.logo}}" alt="{{item.title}} logo" class="circle" style="border-radius: 0;" /> {% endif %}
<a href="{{item.url}}" class="title">{{item.title}}</a>
{% if item.funding %} ({{item.funding}}) {% endif %}
{% if item.orphan %}<b>(up for adoption)</b>{% endif %}
<div>
{% if item.start_date %}
{% unless item.end_date %}
<b>started</b>
{% endunless %}
{% include date.html date=item.start_date %}
{% if item.end_date %}
&nbsp;-&nbsp;
{% include date.html date=item.end_date %}
{% endif %}
<br />
{% endif %}
{% if item.supported-by %}
<b>funded by</b>
{% for project in item.supported-by %}
{% include project_chip.html project=project %}
{% endfor %}
<br />
{% endif %}
{{item.teaser | safe}}
</div>
</li>