Personal website
Go to file
Gitea 8c051f7cd8
continuous-integration/drone/push Build is passing Details
Calendar synchronization at Mon 24 Jun 22:00:42 UTC 2024
2024-06-25 00:00:43 +02:00
.github Only update versions every month 2023-08-12 20:41:07 +02:00
_assets Updated bootstrap, jQuery 2023-07-21 23:30:48 +02:00
_data Updated age 2023-04-04 09:52:40 +02:00
_drafts Added draft article 2020-03-28 12:20:13 +01:00
_events Calendar synchronization at Sun 28 Nov 23:00:25 UTC 2021 2021-11-29 00:00:26 +01:00
_includes Update used Bootstrap JS version and fixed navbar toggler 2023-09-27 23:05:37 +02:00
_layouts Fixed position of back-to-top button on pages without sidebar 2019-06-09 20:00:29 +02:00
_posts Fixed missing link-status of link 2023-09-27 22:56:36 +02:00
assets Added slides for Digitalpolitik 2021-04-05 16:15:25 +02:00
blog Fixed issue with string screwing up HTML 2018-01-11 12:42:27 +01:00
cs Provided custom meta descriptions for each page and post 2018-01-09 16:40:46 +01:00
district Daten aktualisiert 2019-09-29 09:43:42 +02:00
pages Fix addresses 2023-08-23 09:35:16 +02:00
politics Provided custom meta descriptions for each page and post 2018-01-09 16:40:46 +01:00
scripts Fixed deploy script 2017-12-27 21:26:17 +01:00
software-craftsman Added category and pages related to software craftsmanship 2020-07-04 18:27:39 +02:00
speeches Provided custom meta descriptions for each page and post 2018-01-09 16:40:46 +01:00
.babelrc Updated gulpfile to ESM and added babelrc 2023-07-21 20:57:33 +02:00
.drone.yml fix: Try fixing problem with ARM processor 2024-04-21 17:03:41 +02:00
.eslintrc Added browser and jquery global variables to eslint environment 2018-11-24 15:35:39 +01:00
.gitignore Added node_modules to gitignore 2018-01-02 18:32:08 +01:00
.htaccess Updated path for allris-eimsbüttel 2020-06-05 16:49:40 +02:00
.travis.yml Ensures only pushes to master branch are built 2017-12-29 12:32:09 +01:00 Fix addresses 2023-08-23 09:35:16 +02:00
Gemfile chore: Bump rack from 3.0.10 to 3.0.11 (#844) 2024-06-02 09:54:14 +02:00
Gemfile.lock chore: Bump actionview, activesupport and railties (#843) 2024-06-02 10:16:33 +02:00
LICENSE Added missing space that should make GitHub pick up Apache 2.0 license 2017-12-25 22:39:47 +01:00 Added updated build status badge 2019-02-08 23:34:15 +01:00
_config.test.yml Added config for test builds 2019-02-26 21:33:29 +01:00
_config.yml Exclude techstack, yarn.lock and counter from jekyll build 2023-12-03 12:56:32 +01:00
counter Calendar synchronization at Mon 24 Jun 22:00:42 UTC 2024 2024-06-25 00:00:43 +02:00
deploy_ed25519.enc Added travis CI 2017-12-25 20:24:33 +01:00
feed.xml Switched to jekyll assets 2017-12-24 20:10:30 +01:00
google98936b4605d7df21.html [Global] Added google site verification 2016-10-03 13:26:19 +02:00
gulpfile.js Fix htmlproofer call while also getting output 2023-07-21 23:40:25 +02:00
index.html Added missing reading-optimised class to index 2019-06-09 20:00:29 +02:00
package.json chore: Bump braces from 3.0.2 to 3.0.3 (#838) 2024-06-02 09:54:55 +02:00
robots.txt Allow entire site for robots 2018-01-09 16:31:30 +01:00 Fix URLs 2023-12-03 11:29:40 +01:00
techstack.yml Fix URLs 2023-12-03 11:29:40 +01:00
yarn.lock chore: Bump micromatch from 4.0.5 to 4.0.7 (#839) 2024-06-02 09:54:49 +02:00

Personal Website

Build Status Website Status

This repository hosts my personal website. It is jekyll powered with all required dependencies described in the Gemfile. If you wanted, you could create the very same website with this repository that you can find under the official URL.

You can use it as a starting point for your own website. In the following I will describe what you need to change to make it your own (minimal changes).

Guest posts

If you want to contribute a post, feel free to submit a pull request with a post. Make sure to add the value "author" with your name.


  • _config.yml: this contains the site configuration, update it to meet your needs
  • _data/: this directory contains data files that allow for easy website changes
  • _data/author.yml: this file describes the key values for the author (website owner), the values are also used to populate the CV page and the author sidebar box
  • _data/footer-menu.yml: defines the footer menu
  • _data/header-menu.yml: defines the header menu
  • _data/notification.yml: defines the global configuration and if it is visible
  • _data/promotion.yml: defines the promotion and if it is visible
  • _data/cdn.yml: defines whether a CDN is used and what it's URL is
  • _data/lazy-loading.yml: defines whether images are loaded lazily
  • assets/: required static files
  • assets/images/uberspace-badge-*.png: must be changed to accomodate your promotional image
  • assets/images/brand.svg: must be changed to your brand image
  • assets/pdf/cv.pdf: change for your CV in PDF format
  • _posts/: delete and write your own posts
  • _includes/: no need to touch, nothing hard-coded inside
  • _includes/sidebar/: contains available sidebar boxes, add files here and then you can already use the new sidebar box
  • pages/: directory for pages, don't forget permalink variable for new pages, update every page but 404.html and cv.html to your situation
  • index.html: you should probably update the text here
  • .htaccess: remove the part that rewrites to

Beyond this no changes are absolutely necessary. No links are hard-coded in the pages, layouts or include files beyond the technical dependencies.

The sidebar is configured via variables in the YAML front matter. By default the author sidebar box is shown everywhere. You can customize this by adding the variable sidebarboxes to the front matter of a post, page or category. Then specify all boxes you want to use by their file name without the extension in the order they should appear separated by a whitespace each. Look into existing pages for examples.

Without any new files other than posts, these categories are supported out of the box:

  • speeches (appears under Speeches menu point)
  • politics (appear under Politics menu point)
  • politics G20 (appears both under Politics and Politics/G20 menu points)
  • cs (appears under Computer Science menu point)
  • blog (appears under Blog menu point)
  • site (appears on home page)

Responsive images

If you want to include responsive images in posts, use the following:

{% include image.html alt="<your alt text>" link="<the relative link to the image>" %}

If you have enabled a CDN and are in a production environment (JEKYLL_ENV set to production) the URL of the image will use the CDN. Otherwise it will be relative to the root directory of the website. The advantage in this approach is quite obvious. If you want to change the HTML of an image, you just need to change the image.html and the link to a potential CDN only has to be changed in one location and not in potentially thousands of img tags or the markdown equivalent. The HTML provided by image.html automatically adds "img-fluid" to all images which makes them responsive by using Bootstrap.

Continuous Integration and Deployment

The .travis.yml file is already in a good state to use it for own needs. But you need to update it to make it work for you. In the following I will list the absolute minimal changes you need to do.

  • scripts/ change martens7 to your Uberspace user and to your host
  • .travis.yml: update the known hosts for your Uberspace host, update the before_deploy section (first dash)
  • deploy_ed25519.enc: change to your encrypted SSH key

To understand how to prepare the SSH connection, follow this link: