diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000000000000000000000000000000000..f463efb5f6c314260b00199059cff8592c6e3039
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,4 @@
+db_example.sql linguist-vendored=true
+static/mediaelementjs/* linguist-vendored=true
+static/js.cookie.js linguist-vendored=true
+static/font-awesome/* linguist-vendored=true
diff --git a/templates/base.html b/templates/base.html
index 2f7cb790e75dca5c98fb25d62e37b5d29cb09792..4ebeea7b24cb66f48b073ed875f940fd658e1522 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -25,7 +25,7 @@
 	</head>
 	<body>
 	{% block navbar %}
-		<nav class="navbar navbar-default navbar-static-top">
+		<nav class="hidden-print navbar navbar-default navbar-static-top">
 			<div class="container-fluid">
 				<div class="navbar-header">
 					<button type="button" class="navbar-toggle" data-toggle="collapse" 
@@ -98,10 +98,10 @@
 				<div class="col-xs-12 col-md-offset-{{ page_border }} col-md-{{ 12-(2*page_border) }}">
 				{% endif %}
 					{% for msg in get_flashed_messages() %}
-					<div class="alert alert-danger" role="alert">{{ msg }}</div>
+					<div class="hidden-print alert alert-danger" role="alert">{{ msg }}</div>
 					{% endfor %}
 					{% for msg in get_announcements(min_announcement_level) if (not request.cookies['alert-info-'+msg.id|string]) %}
-					<div class="alert alert-{{levels.get(msg.level, ('info', ''))[0]}}" role="alert">
+					<div class="hidden-print alert alert-{{levels.get(msg.level, ('info', ''))[0]}}" role="alert">
 						<a href="#" class="close" data-dismiss="alert" aria-label="close" onclick="Cookies.set('alert-info-{{msg.id}}', '1');">&times;</a>
 						{{ msg.text|safe }}
 					</div>
@@ -111,7 +111,7 @@
 				</div>
 			</div>
 		</div>
-		<footer class="footer">
+		<footer class="footer hidden-print">
 			<div class="container-fluid">
 				<ul class="list-inline">
 					<li>
diff --git a/templates/index.html b/templates/index.html
index 089c9120768d8e3ddd17464cdf5642aca85a96d4..01851e1e32c0efd90b50c7a2c60b77ec5d05d503 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -12,12 +12,12 @@
 <div class="row">
 	<div class="col-xs-12">
 		{% for msg in get_announcements() %}
-		<div class="alert alert-{{levels.get(msg.level, ('info', ''))[0]}} row" role="alert">
-			<div class="col-xs-12" style="padding: 0px;">
+		<div class="alert alert-{{levels.get(msg.level, ('info', ''))[0]}}" role="alert">
+			<div>
 				<div class="pull-right">{{ valuedeletebtn(('announcements',msg.id,'deleted')) }}</div>
 				<div>{{ valueeditor(('announcements',msg.id,'text'), msg.text) }}</div>
 			</div>
-			<div class="col-xs-12" style="padding: 0px;">
+			<div>
 				<ul class="list-inline">
 					<li>
 						{% if not msg.visible %}
diff --git a/templates/schedule.html b/templates/schedule.html
index f666ac6a9c1f12feebb2a4cf31c93d0f3a86698a..af913fc1795576f8272c0531c96f9e418ab87b76 100644
--- a/templates/schedule.html
+++ b/templates/schedule.html
@@ -2,10 +2,10 @@
 {% block content %}
 <div class="panel-group" id="accordion">
 	<div class="panel panel-default">
-		<div class="panel-heading">
+		<div class="hidden-print panel-heading">
 			<h1 class="panel-title">Drehplan</h1>
 		</div>
-		<div class="row">
+		<div class="row hidden-print">
 			<div  style="margin-top: 10px;" class="col-xs-12">
 				<a href="{{url_for('schedule', kw=kw-1) }}" class="pull-left btn btn-default">{{ "<<" }}</a>
 				<a href="{{url_for('schedule', kw=kw+1) }}" class="pull-right btn btn-default">{{ ">>" }}</a>
@@ -17,14 +17,14 @@
 				<tr><th></th>{% for d in days if (d.index < 5) or (d.lectures|length) > 0%}<th colspan="{{d.maxcol}}">{{ d.date.strftime("%A (%d.%m.%Y)") }}</th>{% endfor %}</tr>
 				{% for t in times %}
 				{% set time_loop = loop %}
-				<tr height="15px">
+				<tr height="12px">
 					{% if ((loop.index - 1) is divisibleby 4)  %} <td rowspan="4" style="vertical-align: top;">{{ t.strftime("%H:%M") }}</td> {% endif %}
 					{% for d in days  if (d.index < 5) or (d.lectures|length) > 0 %}
 						{% for i in range(1,d.maxcol+1) %}
 						{% for l in d.lectures|selectattr('schedule_col','equalto',i) if (((l.time.time() > t) and (l.time.time() < times[time_loop.index+1])) != (l.time.time() == t ) ) %}
 						<td rowspan="{{l.duration / 15}}" style="background: lightgrey;">
 							<p class="small">
-							<strong><a href="{{url_for('course', handle=l.handle)}}#lecture-{{l.id}}">{{l.short}}</a></strong><br>
+							<strong><a class="hidden-print" href="{{url_for('course', handle=l.handle)}}#lecture-{{l.id}}">{{l.short}}</a><span class="visible-print-inline">{{l.short}}</span></strong><br>
 								{{l.time.strftime("%H:%M")}} - {{l.time_end.strftime("%H:%M")}}<br>
 								{{l.place}}</p>
 						</td>