go.talks/present: printing support in Chrome
Fixes golang/go#4442

R=adg
CC=golang-dev
https://golang.org/cl/6852088
diff --git a/present/static/print.css b/present/static/print.css
new file mode 100644
index 0000000..6c58257
--- /dev/null
+++ b/present/static/print.css
@@ -0,0 +1,51 @@
+/* set page layout */
+@page {
+  size: A4 landscape;
+}
+
+body { 
+  display: block !important;
+}
+
+.slides {
+  left: 0;
+  top: 0;
+}
+
+.slides > article {
+  position: relative;
+
+  left: 0;
+  top: 0;
+
+  margin: 0 !important;
+  page-break-inside: avoid;
+
+  text-shadow: none; /* disable shadow */
+
+  display: block !important;
+  transform: translate(0) !important;
+  -o-transform: translate(0) !important;
+  -moz-transform: translate(0) !important;
+  -webkit-transform: translate3d(0, 0, 0) !important;
+}
+
+div.code {
+  background: rgb(240, 240, 240);
+}
+
+/* hide click areas */
+.slide-area, #prev-slide-area, #next-slide-area {
+  display: none;
+}
+
+/* add explicit links */
+a:link:after, a:visited:after {
+ content: " (" attr(href) ") ";
+ font-size: 50%;
+}
+
+/* white background */
+body {
+  background: rgb(255,255,255) !important;
+}
diff --git a/present/static/slides.js b/present/static/slides.js
index 313e7c8..0b98b4b 100644
--- a/present/static/slides.js
+++ b/present/static/slides.js
@@ -532,6 +532,15 @@
   document.querySelector('head').appendChild(el);
 };
 
+function addPrintStyle() {
+  var el = document.createElement('link');
+  el.rel = 'stylesheet';
+  el.type = 'text/css';
+  el.media = "print";
+  el.href = PERMANENT_URL_PREFIX + 'print.css';
+  document.body.appendChild(el);
+};
+
 function handleDomLoaded() {
   slideEls = document.querySelectorAll('section.slides > article');
 
@@ -539,6 +548,7 @@
 
   addFontStyle();
   addGeneralStyle();
+  addPrintStyle();
   addEventListeners();
 
   updateSlides();