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 (1094)
Showing with 288 additions and 142 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
......@@ -94,7 +94,7 @@ 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.
......@@ -119,6 +119,8 @@ Furthermore, if these are mixed between folders and static items, the folders wi
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.
......
......@@ -3,19 +3,21 @@ 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:
encoding: utf-8
plugins:
- jekyll-paginate
- jekyll-github-metadata
- jekyll-redirect-from
exclude:
- 'run' # because Michael
- 'public/materialize/materialize-src/*'
- 'public/*.md'
- 'public/*.html'
......@@ -26,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,61 +93,97 @@ 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'
url: '/students/'
active: '/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
......@@ -2,7 +2,7 @@
Properly formats the date in yyyy[-mm] format.
Expects 'date' to be formatted as an argument.
{% endcomment %}
{% assign dateparts = date | split: "-" %}
{% assign dateparts = include.date | split: "-" %}
{% assign year = dateparts[0] %}
{% assign month = dateparts[1] %}
......
......@@ -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>
......@@ -7,7 +7,7 @@
{% assign base_folder = page.url | split: '/' %}
{% assign base_folder = base_folder[1] %}
{% assign represents = item.active | split: '/' %}
{% assign represents = include.item.active | split: '/' %}
{% assign represents = represents[1] %}
{% if represents %}
......@@ -16,25 +16,25 @@
{% endif %}
{% endif %}
{% if page.url == item.url %}
{% if page.url == include.item.url %}
{% assign menu_active = true %}
{% endif %}
{% unless item.menu_hidden %}
{% unless include.item.menu_hidden %}
<li
{% if menu_active %}class="active"{% endif %}
{% if page.url == item.url %}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: '/' %}
{% assign base_folder = base_folder[1] %}
......@@ -42,7 +45,7 @@
<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 %}
......@@ -50,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>
......@@ -73,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,28 +3,30 @@
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"/>
{% 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 %}
from
{% assign date = person.start_date %}
{% include date.html %}
<br/>
{% endif %}
{% if person.end_date %}
until
{% assign date = person.end_date %}
{% include date.html %}
<br/>
{% 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>
......
......@@ -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,26 +5,29 @@
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 %}
in
{% for tag in post.tags %}
{% for tag in include.post.tags %}
<div class="chip">
{{tag}}
</div>
......
{% 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 %}
Generates a list of projects.
Expects 'projects' as an argument, representing the list of projects to show.
{% endcomment %}
{% for role in site.roles %}
{% assign rollers = projects | where: "role", role.id %}
{% if rollers.size > 0 %}
<ul class="collection with-header">
<li class="collection-header"><h4>{{role.name}}</h4></li>
{% for project in rollers %}
<li class="collection-item avatar">
<a href="{{project.url}}" class="title">{{project.fullname}}</a>
<p>
{% if project.start_date %}
from
{% assign date = project.start_date %}
{% include date.html %}
<br/>
{% endif %}
{% if project.end_date %}
until
{% assign date = project.end_date %}
{% include date.html %}
<br/>
{% endif %}
</p>
</li>
{% endfor %}
</ul>
{% endif %}
{% endfor %}