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 (1140)
Showing with 556 additions and 325 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"
# Repository holding the sources of the KWARC.info website
**Building this page can take up to five minutes. This is normal and to be expected.**
Note for authors: When editing some text, please do not hard wrap existing lines.
This plays very bad with diffs, in particular an entire paragraph shows up as changed even though it might just be a single line.
Furthermore, this introduces lots and lots of merge conflicts
......@@ -17,13 +15,32 @@ This can be done online by clicking on `Edit this page` in the navigation menu.
See the above links for details.
* `_config.yml`: main configuration page
* `_post/*.md`: sources of the news, blog posts and activities
* `_data/*.yml`: YAML database from which certain pages are automatically generated
* `_includes/*`: reusable chunks of web pages, like the nav bar
* `_layouts/*`: local style files
* `_includes/*`: reusable chunks of web pages, like the nav bar
* `_post/*.md`: sources of the news, blog posts and activities
* `news/*`: the KWARC news are generated here.
* `people/*.md`: the KWARC home pages
* `projects/*.md`: the KWARC project descriptions
* `public/*`: all static files (images, js, css, etc)
* `project/` -- people -- event_activites: folders used to generate menu pages (as set in `_config.yml`)
* `_tagpages` : the tag pages, each tag gets an almost empty md file so that the tag page gets generated by jekyll
* `public/*.md`: descriptions of the research areas
* `systems/*.md`: descriptions of the KWARC sytems
* `courses/*.md`: KWARC courses (this may be obsoleted by univis)
## Performance
This jekyll page is tuned in order to build as fast as possible.
It also makes use of the [jekyll-compress-html](https://github.com/penibelst/jekyll-compress-html) layout, to be efficiently transferable over network.
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)
## How to use Jekyll to test/build this website
......@@ -56,9 +73,10 @@ 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.
* `menu_external` - If set to `true`, assumes that `url` is external to the page.
* `external` - If set to `true`, assumes that `url` is external to the page.
* `menu_title` and `title` - Title to be used in the menu item.
* `menu_hidden` - If set to `true`, hide the item from the menu.
* `menu_order` - By default, menus are ordered in the order they are listed in the menu. This key can be used to override the order. Values must be non-negative integers between 0 and 10000 (inclusive). The default value is 100.
......@@ -76,11 +94,12 @@ 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 subfolders 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
# A listing of the folder submenu
......@@ -90,13 +109,18 @@ Because submenus are not clickable, the `url` for subfolders is ignored.
- menu_title: 'FAU links'
items:
- menu_title: 'Overview'
menu_external: true
external: true
url: 'https://fau.de/'
- menu_title: 'CS department'
menu_external: true
external: true
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.
......@@ -112,20 +136,20 @@ It is recommended to install the [GitHub pages gem](https://github.com/github/pa
If you already have Ruby, the install part should be as easy as
~~~
gem install github-pages -V
gem install bundler
bundle install
~~~
Note that you will need Ruby headers (`ruby-dev` package on Ubuntu) in order to compile C dependencies.
in the local clone of this repository.
On OS X, you can just type `sudo gem install github-pages -V`.
Note that you will need Ruby headers (`ruby-dev` package on Ubuntu) in order to compile C dependencies.
Now you can `cd` into your local clone of the repository and launch the compilation by
You can then run the development server by:
~~~
jekyll serve -w -b''
bundle exec jekyll serve
~~~
Your site will be generated in a `_site` sub-directory, and served live at <http://localhost:4000/>.
Any changes to the sources will trigger an automatic recompilation!
Have fun!
# Permalinks
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'
......@@ -28,62 +28,162 @@ exclude:
author:
name: 'The KWARC Group'
url: http://kwarc.info
email: kohlhase@kwarc.info
# twitter: opendreamkit
email: michael.kohlhase@fau.de
semester: SS17
collections:
tagpages:
output: true
permalink: /tag/:path
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
# Menu config
menu:
- title: 'News'
url: '/news/'
active: '/news/'
- title: 'People'
folder: 'people'
active: '/people/'
url: '/people/'
items:
- title: 'Former Members'
url: '/people/former/'
- title: 'Research'
url: '/research/'
folder: 'research'
items:
- title: 'Bibliography'
menu_order: 10000
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'
- title: 'News'
url: '/news/'
- title: 'Sub'
active: '/projects/'
url: '/projects/'
items:
- title: 'Completed Projects'
url: '/projects/completed/'
- title: 'Courses & Theses'
url: '/courses/'
active: '/courses/'
items:
- title: 'Contact'
url: '/contact/'
- 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: ["<!-- ", " -->"]
comments: ["<!-- ", " -->"]
# roles for people and their name
roles:
-
id: faculty
name: Faculty
-
id: postdoc
name: Postdoc
-
id: phd-student
name: "Phd Student"
-
id: master-student
name: "Master Student"
-
id: bachelor-student
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_external: false
menu_order: 100
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
......@@ -13,24 +13,20 @@
<a href="https://github.com/KWARC" title="GitHub" class="waves-effect waves-teal btn-flat">
<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">
How to edit
<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>
......@@ -38,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,9 +14,9 @@
{% 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">
{% if page.title == "Home" %}{{ site.title }}{% else %}{{ page.title }}{% endif %}
{% if page.url == "/" %}{{ site.title }}{% else %}{{ page.title }}{% endif %}
</a>
</div>
</div>
......@@ -19,26 +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>
{% capture page_priors %}
{% for page in site.pages %}
{% assign value = page.menu_order %}
{% include print_number.liquid %},
{% endfor %}
{% endcapture %}
{% assign page_priors = page_priors | normalize_whitespace | replace: " ", "" | split:"," | uniq | sort | join: "," | append: "," %}
{% for item in site.menu | sort:"menu_order %}
{% if item.folder %}
{% include menu_sub.html %}
{% elsif item.items %}
{% include menu_sub.html %}
{% for item in site.menu | sort:"menu_order" %}
{% if (item.folder or item.items) %}
{% include menu_sub.html item=item %}
{% else %}
{% include menu_single.html %}
{% include menu_single.html item=item %}
{% endif %}
{% endfor %}
</li>
</ul>
\ No newline at end of file
</ul>
......@@ -2,18 +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 %}
>
<a
href="{% unless item.menu_external %}{{ site.baseurl }}{% endunless %}{{ item.url }}"
{% if item.menu_external %}target="_blank"{% endif %}
>
{% if item.menu_title %}
{{ item.menu_title }}
{% if include.item.external %}
<a href="{{ include.item.url }}" target="_blank">
{% else %}
<a href="{{ site.baseurl }}{{ include.item.url }}">
{% endif %}
{% 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.
Furthermore, it requires the page_priors global variable
This page creates a submenu item.
It expects an appropriate `item` as argument.
It also expects the global 'sorted_pages' argument.
{% endcomment %}
{% unless item.menu_hidden %}
<!-- Figure out our current location -->
{% assign url_parts = page.url | split: '/' %}
{% assign base_url = url_parts | last %}
{% assign base_folder = url_parts[1] %}
{% assign item = include.item %}
<!-- Find out if we are active -->
{% assign menu_active = false %}
<!-- if we are in the right folder, we are active -->
{% if base_folder == item.folder %}
{% assign menu_active = true %}
{% endif %}
<!-- find all our priorities and also check for activity -->
{% capture priors %}
{{ page_priors }}
{% for item in item.items %}
{% unless item.menu_page %}
{% unless item.external_page %}
{% if item.url == page.url %}
{% unless item.menu_hidden %}
{% assign base_folder = page.url | split: '/' %}
{% 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 %}
{% endif %}
{% endif %}
{% endif %}
{% if represents %}
{% if base_folder == represents %}
{% assign menu_active = true %}
{% endif %}
{% endunless %}
{% endunless %}
{% assign value = item.menu_order %}
{% include print_number.liquid %},
{% endfor %}
{% endcapture %}
{% assign priors = priors | normalize_whitespace | replace: " ", "" | split:"," | uniq | sort %}
<!-- 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 %}">
{% if item.menu_title %}
{{ item.menu_title }}
{% else %}
{{ item.title }}
{% endif %}
</a>
<div class="collapsible-body">
<ul>
<!-- Start by iteratig over the priorities -->
{% for p in priors %}
<!-- If we have folders, iterate over them -->
{% if item.folder %}
{% for item in site.pages %}
<!-- read item priority -->
{% assign value = item.menu_order %}
{% capture ip %}{% include print_number.liquid %}{% endcapture %}
{% assign ip = ip | normalize_whitespace | replace: " ", "" %}
<!-- pick all the ones with the current priority -->
{% if ip == p %}
<!-- get the current page -->
{% assign sub_parts = item.url | split: '/' %}
{% assign sub_url = sub_parts | last %}
{% assign sub_folder = sub_parts[1] %}
<!-- if we are in the right folder, include it -->
{% if sub_folder == item_folder %}
{% include menu_single.html %}
{% 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 %}" {% if item.url %}href="{{item.url}}"{%endif %}>
{% if item.menu_title %}
{{ item.menu_title }}
{% else %}
{{ item.title }}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
<!-- if we have items, iterate over them -->
{% if item.items %}
{% for item in item.items %}
<!-- read item priority -->
{% assign value = item.menu_order %}
{% capture ip %}{% include print_number.liquid %}{% endcapture %}
{% assign ip = ip | normalize_whitespace | replace: " ", "" %}
<!-- pick all the ones with the current priority -->
{% if ip == p %}
{% include menu_single.html %}
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
</ul>
</div>
</li>
</ul>
</li>
{% endunless %}
\ No newline at end of file
</a>
<div class="collapsible-body">
<ul class='nobullets'>
<!-- If we have folders, iterate over them -->
{% if item.folder %}
{% for item in sorted_pages %}
{% assign sub_components = item.url | split: '/' %}
{% 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 item=item %}
{% endfor %}
{% endif %}
</ul>
</div>
</li>
</ul>
</li>
{% endunless %}
<nav aria-label="Page navigation">
<ul class="pagination">
{% comment %}
Renders a pagination element.
Expects the default jekyll 'paginator' as argument.
{% endcomment %}
{% assign paginator = paginator %}
<ul class="pagination">
<!-- The previous page -->
{% if paginator.previous_page %}
<li>
<a href="{{ site.baseurl }}{{paginator.previous_page_path}}" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
<li class="waves-effect">
<a href="{{ site.baseurl }}{{paginator.previous_page_path}}">
<i class="material-icons">chevron_left</i>
</a>
</li>
{% else %}
<li class="disabled" >
<a href="#" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
{% endif %}
{% if paginator.page > 4 %}
<li><a href="{{ site.paginate_path | prepend: site.baseurl | replace: '//', '/' | replace: 'page:num/', '' }}">1</a></li>
{% if paginator.page > 5 %}
<li class="disabled" ><a href="#" >...</a></li>
{% endif %}
<li class="disabled">
<a href="#!">
<i class="material-icons">chevron_left</i>
</a>
</li>
{% endif %}
{% assign min_index = paginator.page | minus:3 %}
{% assign max_index = paginator.page | plus:3 %}
{% for p in (min_index..max_index) %}
{% if p > 0 and p <= paginator.total_pages %}
<li {% if p == paginator.page %} class="active" {% endif %}>
{% if p == 1 %}
<a href="{{ site.paginate_path | prepend: site.baseurl | replace: '//', '/' | replace: 'page:num/', '' }}">1</a>
{% else %}
<a href="{{ site.paginate_path | prepend: site.baseurl | replace: '//', '/' | replace: ':num', p }}">{{ p }}</a>
{% endif %}
<!-- Show all the pages -->
{% for page in (1..paginator.total_pages) %}
{% if page == paginator.page %}
<li class='active'>
<a href="#!">
{{page}}
</a>
</li>
{% elsif page == 1 %}
<li class="waves-effect">
<a href="{{ paginator.previous_page_path | prepend: site.baseurl | replace: '//', '/' }}">
{{page}}
</a>
</li>
{% else %}
<li class="waves-effect">
<a href="{{ site.paginate_path | prepend: site.baseurl | replace: '//', '/' | replace: ':num', page }}">
{{page}}
</a>
</li>
{% endif %}
{% endfor %}
{% if max_index < paginator.total_pages %}
{% assign max_indexp = max_index | plus:1 %}
{% if max_indexp < paginator.total_pages %}
<li class="disabled" ><a href="#" >...</a></li>
{% endif %}
<li><a href="{{ site.paginate_path | prepend: site.baseurl | replace: '//', '/' | replace: ':num', paginator.total_pages }}">{{ paginator.total_pages }}</a></li>
{% endif %}
<!-- The next page -->
{% if paginator.next_page %}
<li>
<a href="{{ site.baseurl }}{{ paginator.next_page_path }}" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
<li class="waves-effect">
<a href="{{ site.baseurl }}{{paginator.next_page_path}}">
<i class="material-icons">chevron_right</i>
</a>
</li>
{% else %}
<li class="disabled" >
<a href="#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
<li class="disabled">
<a href="#!">
<i class="material-icons">chevron_right</i>
</a>
</li>
{% endif %}
</ul>
</nav>
</ul>
\ No newline at end of file
{% capture purl %}/people/{{person}}/{% endcapture %}
{% assign pname = person %}
{% assign pimg = "" %}
{% comment %}
This page creates a single 'chip' for linking to a person.
It expects the username of the person as the 'person' variable
{% endcomment %}
{% for pp in site.pages %}
{% if pp.url == purl %}
{% assign pname = pp.fullname %}
{% assign pimg = pp.pic %}
{% endif %}
{% endfor %}
{% capture purl %}/people/{{include.person}}/{% endcapture %}
{% assign pp = site.pages | where: "url", purl | first %}
<a href="{{ site.baseurl }}{{purl}}">
<div class="chip">
{% if pimg != "" %}
<img src="{{ site.baseurl }}/{{pimg}}">
{% endif %}
{{pname}}
</div>
</a>
\ No newline at end of file
{% if pp %}
<a href="{{ site.baseurl }}{{purl}}">
<div class="chip">
<img src="{{ site.baseurl }}/{{pp.pic}}"/>
{{pp.fullname}}
</div>
</a>
{% else %}
<div class="chip">
{{include.person}}
</div>
{% endif %}
{% comment %}
Generates a list of people.
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">
<h5>{{role.name}}(s)</h5></li>
{% for person in rollers %}
<li class="collection-item avatar">
{% 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 %}
{% comment %}
Generates a link to a single post.
Expects the page representing the post as a 'post' variable.
{% endcomment %}
<div class="post-link">
<h3 class="post-title">
<a href="{{ post.url }}">
{{ post.title }} {{ post.subtitle }}
</a>
</h3>
<p class="post-meta" >
{% assign firsttag = post.tags | first %}
{% assign tmp_list = site.tagpages | where:"tag", firsttag %}
{% assign type = tmp_list | first %}
<span class="post-type">{{ type.title }} by {{post.author}}</span> -
{% if post.location %}<span class="post-location">{{post.location}}</span> - {% endif %}
<span class="post-date">{{ post.date | date_to_string }}</span>
</p>
</div>
<li class="collection-item">
<a href="{{include.post.url}}" class="title">
{{include.post.title}} {{include.post.subtitle}}
</a>
<div>
{% include post_meta.html post=include.post %}
</div>
</li>
\ No newline at end of file
{% comment %}
Shows meta information about a post.
Expects the 'post' to show as an argument.
{% endcomment %}
by
{% include people_chip.html person=include.post.author %}
on
<div class="chip">
{% if include.post.date %}
{{ include.post.date | date_to_string }}
{% else %}
There is no date
{% endif %}
</div>
{% if include.post.location %}
at
<div class="chip">
{{include.post.location}}
</div>
{% endif %}
in
{% for tag in include.post.tags %}
<div class="chip">
{{tag}}
</div>
{% endfor %}
---
layout: page
title: Project Activites
alltags: True
menu_order: 101
---
{% comment %}
Project activities are generated through the /_posts/ folder
{% endcomment %}
<h2>By tag</h2>
{% assign with_post_numbers = true %}
{% include tags_module.html %}
<div class="tagcloud" >
<span class="tag" ><a class="btn btn-default" href="{{ site.blog_path}}">All activites <span class="badge">{{ site.posts.size }}</span></a></span>
{{ tagscontent }}
</div>
<h2>Most recent activites</h2>
{% for post in site.posts %}
{% if forloop.index < 5 %}
{% include post_link.html %}
{% endif %}
{% endfor %}
<a href="{{ site.blog_path}}">See all</a>
{% if value == null %}
{% assign value = site.defaults[0].values["menu_order"] %}
{% endif %}
{% if value < 10 %}0{% endif %}
{% if value < 100 %}0{% endif %}
{% if value < 1000 %}0{% endif %}
{% if value < 10000 %}0{% endif %}
{{value}}
\ No newline at end of file