Update style and pages of blog
authorJoerg Jaspert <joerg@debian.org>
Sat, 20 Feb 2016 13:29:07 +0000 (14:29 +0100)
committerJoerg Jaspert <joerg@debian.org>
Sat, 20 Feb 2016 13:29:07 +0000 (14:29 +0100)
16 files changed:
_config.yml
_layouts/archive.html [deleted file]
_layouts/category_index.html [deleted file]
_layouts/compress.html [new file with mode: 0644]
_layouts/day-archive.html [deleted file]
_layouts/default.html
_layouts/month-archive.html
_layouts/tag-archive-layout.html [deleted file]
_layouts/tag-category.html [new file with mode: 0644]
_layouts/year-archive.html
_plugins/category_pages.rb [deleted file]
_plugins/jekyll-umlauts.rb [new file with mode: 0644]
_scss/base.scss
archives/index.html
category/index.html [new file with mode: 0644]
page/index.html [deleted file]

index f3f1691..9472094 100644 (file)
@@ -6,6 +6,12 @@ author:
   email: joerg@ganneff.de
   uri: https://blog.ganneff.de/
 
+gems:
+  - jekyll-paginate
+  - jekyll-archives
+  - jekyll-feed
+  - jekyll-sitemap
+
 permalink: /:year/:month/:slug.html
 paginate_path: "page/:num/"
 paginate: 10
@@ -13,7 +19,6 @@ paginate: 10
 
 timezone:            Europe/Berlin
 
-#highlighter: pygments
 highlighter: rouge
 
 feed:
@@ -27,31 +32,33 @@ rdiscount:
     - smart     # Typo fixup with SmartyPants
 
 exclude: ['README.md', 'Gemfile.lock', 'Gemfile', 'Rakefile']
-gems:
-  - jekyll-paginate
-  - jekyll-feed
-  - jekyll-archives
-  - jekyll-sitemap
 
 jekyll-archives:
   enabled:
     - year
     - month
-    - tags
+    - categories
+    # - tags
   layout: 'archive'
   permalinks:
-    year: '/archives/:year/'
-    month: '/archives/:year/:month/'
-    day: '/archives/year/:month/:day/'
-    tag: '/archives/tag/:name/'
-    category: '/archives/category/:name/'
+    year: '/:year/'
+    month: '/:year/:month/'
+    category: '/category/:name.html'
+    # tag: '/tag/:name/'
   layouts:
     year: year-archive
     month: month-archive
-    day: day-archive
-    tag: tag-archive-layout
+    category: tag-category
+    tag: tag-archive-layout
 
 rss_path: feed.xml
 sass:
   sass_dir: _scss
   style:    :compressed
+
+compress_html:
+  clippings: all
+  comments: ["<!-- ", " -->"]
+  profile: false
+  # The following set to true for "Developer mode", when html should be readable
+  blanklines: false
\ No newline at end of file
diff --git a/_layouts/archive.html b/_layouts/archive.html
deleted file mode 100644 (file)
index b22132d..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
----
-layout: default
-title: Archive of posts
----
-<h1>Archive of posts from {{ page.date | date: "%B %-d, %Y" }}</h1>
-
-<ul class="posts">
-  {% for post in page.posts %}
-  <li>
-    <span class="post-date">{{ post.date | date: "%b %-d, %Y" }}</span>
-    <a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title | markdownify }}</a>
-  </li>
-  {% endfor %}
-</ul>
\ No newline at end of file
diff --git a/_layouts/category_index.html b/_layouts/category_index.html
deleted file mode 100644 (file)
index 92e1712..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
----
-layout: default
----
-
-<h1 class="category">{{ page.title }} <a href="javascript:window.history.back();">&laquo;</a></h1>
-<ul class="posts">
-
-{% if page.title == 'Categories:' %}
-  {% include taxonomy_sort.html source=site.categories %}
-  {% for taxonomy in sortedtaxonomies %}
-    <h2><a href="{{ page.url | prepend: base_url | replace: "/index.html", "" }}/{{ taxonomy }}/">{{ taxonomy }}</a></h2>
-  {% endfor %}
-{% else %}
-  {% assign catpages = site.categories[page.category] | sort: 'date' %}
-  {% for post in catpages %}
-    <h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
-    <div>{{ post.date | date_to_html_string }}</div>
-    <div class="categories">Filed under: {{ post.categories | category_links | join: ' ' }}</div>
-  {% endfor %}
-{% endif %}
-</ul>
diff --git a/_layouts/compress.html b/_layouts/compress.html
new file mode 100644 (file)
index 0000000..8248010
--- /dev/null
@@ -0,0 +1,10 @@
+---
+# Jekyll layout that compresses HTML
+# v3.0.2
+# http://jch.penibelst.de/
+# © 2014–2015 Anatol Broder
+# MIT License
+---
+
+{% capture _LINE_FEED %}
+{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
diff --git a/_layouts/day-archive.html b/_layouts/day-archive.html
deleted file mode 100644 (file)
index b22132d..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
----
-layout: default
-title: Archive of posts
----
-<h1>Archive of posts from {{ page.date | date: "%B %-d, %Y" }}</h1>
-
-<ul class="posts">
-  {% for post in page.posts %}
-  <li>
-    <span class="post-date">{{ post.date | date: "%b %-d, %Y" }}</span>
-    <a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title | markdownify }}</a>
-  </li>
-  {% endfor %}
-</ul>
\ No newline at end of file
index 194c931..63fe217 100644 (file)
@@ -1,3 +1,6 @@
+---
+layout: compress
+---
 <!DOCTYPE html>
 <html lang='en-GB'>
 <head>
@@ -29,6 +32,7 @@
       <nav role="navigatiuon" >
         <ul>
           <li><a href="/">Home</a></li>
+          <li><a href="/category">Categories</a></li>
           <li><a href="/archives">Archive</a></li>
           <li><a href="/about">About</a></li>
           <li><a href="https://git.ganneff.de/">Git</a></li>
index 30be181..459c47d 100644 (file)
@@ -2,7 +2,8 @@
 layout: default
 title: Archive of posts
 ---
-<h1>Archive of posts from {{ page.date | date: "%B %Y" }}</h1>
+<h1>Archive of posts from {{ page.date | date: "%B" }}
+  <a class="year-link" href="/{{ page.date | date: '%Y' }}">{{ page.date | date: "%Y" }}</a></h1>
 
 <ul class="posts">
   {% for post in page.posts %}
diff --git a/_layouts/tag-archive-layout.html b/_layouts/tag-archive-layout.html
deleted file mode 100644 (file)
index ab614a9..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
----
-layout: default
-title: Archive of posts
----
-<h1>Archive of posts with {{ page.type }} '{{ page.title }}'</h1>
-<ul class="posts">
-  {% for post in page.posts %}
-  <li>
-    <span class="post-date">{{ post.date | date: "%b %-d, %Y" }}</span>
-    <a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
-  </li>
-  {% endfor %}
-</ul>
\ No newline at end of file
diff --git a/_layouts/tag-category.html b/_layouts/tag-category.html
new file mode 100644 (file)
index 0000000..0e554ef
--- /dev/null
@@ -0,0 +1,31 @@
+---
+layout: default
+---
+<h1>Archive of posts with {{ page.type }} '{{ page.title }}'</h1>
+{% for post in page.posts %}
+{% assign loopindex = forloop.index | modulo: 2 %}
+{% assign currentdate = post.date | date: "%Y" %}
+{% if currentdate != date %}
+{% unless forloop.first %}
+<p>Back to <a href="/category/" title="Category page">the category overview.</a></p>
+</table>
+{% endunless %}
+<h2><a class="year-link" href="/{{ currentdate }}">{{ currentdate }}</a></h2>
+  <table>
+    <tbody>
+  {% assign date = currentdate %}
+{% endif %}
+    {% if loopindex == 1 %}
+    <tr class="odd">
+    {% else %}
+    <tr class="even">
+    {% endif %}
+      <td class="postdate"><time datetime="{{post.date | date_to_xmlschema}}">{{ post.date | date: "%d. %B" }}</time></td>
+      <td class="postlink"><a href="{{ post.url }}">{{ post.title }}</a></td>
+    </tr>
+{% if forloop.last %}
+  </tbody>
+</table>
+{% endif %}
+{% endfor %}
+<p>Back to <a href="/category/" title="Category page">the category overview.</a></p>
index de8d7da..0caebfe 100644 (file)
@@ -4,11 +4,18 @@ title: Archive of posts
 ---
 <h1>Archive of posts from {{ page.date | date: "%Y" }}</h1>
 
-<ul class="posts">
+<table>
+  <tbody>
   {% for post in page.posts %}
-  <li>
-    <span class="post-date">{{ post.date | date: "%b %-d, %Y" }}</span>
-    <a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title | markdownify }}</a>
-  </li>
+  {% assign loopindex = forloop.index | modulo: 2 %}
+    {% if loopindex == 1 %}
+      <tr class="odd">
+    {% else %}
+      <tr class="even">
+    {% endif %}
+        <td class="postdate"><time datetime="{{post.date | date_to_xmlschema}}">{{ post.date | date: "%d. %B" }}</time></td>
+        <td class="postlink"><a href="{{ post.url }}">{{ post.title | markdownify }}</a></td>
+      </tr>
   {% endfor %}
-</ul>
\ No newline at end of file
+  </tbody>
+</table>
diff --git a/_plugins/category_pages.rb b/_plugins/category_pages.rb
deleted file mode 100644 (file)
index 0977832..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-module Jekyll
-
-  class CategoryPage < Page
-    def initialize(site, base, dir, category)
-      @site = site
-      @base = base
-      @dir = dir
-      @name = 'index.html'
-
-      self.process(@name)
-      self.read_yaml(File.join(base, '_layouts'), 'category_index.html')
-
-      self.data['iscat'] = true
-
-      if category != 'index.html'
-        self.data['category'] = category
-        category_title_prefix = site.config['category_title_prefix'] || 'Category: '
-        self.data['title'] = "#{category_title_prefix}#{category}"
-      else
-        self.data['title'] = 'Categories:'
-      end
-
-    end
-  end
-
-  class CategoryPageGenerator < Generator
-    safe true
-
-    def generate(site)
-      dir = site.config['category_dir'] || 'categories'
-      if site.layouts.key? 'category_index'
-        site.categories.each_key do |category|
-          newpage = CategoryPage.new(site, site.source, File.join(dir, category), category)
-          site.pages << newpage
-          #categories << newpage.title
-        end
-      end
-      site.pages << CategoryPage.new(site, site.source, dir, "index.html")
-    end
-  end
-
-end
diff --git a/_plugins/jekyll-umlauts.rb b/_plugins/jekyll-umlauts.rb
new file mode 100644 (file)
index 0000000..f423e23
--- /dev/null
@@ -0,0 +1,38 @@
+# coding: utf-8
+# From:  https://github.com/webchef/jekyll-umlauts
+# This generator converts all umlauts äÄöÖüÜ and ß in its correct html equivalent
+# ü = &uuml; Ü = &Uuml;
+# ä = &auml; Ä = &Auml;
+# ö = &ouml; Ö = &Ouml;
+# ß = &szlig; ẞ = &#7838;
+# Author: Arne Gockeln
+# Website: http://www.Webchef.de
+module Jekyll
+  class UmlautsGenerator < Generator
+    safe true
+    priority :highest
+
+    def generate(site)
+      site.pages.each do |page|
+        page.content = replace(page.content)
+      end
+
+      site.posts.docs.each do |post|
+        post.content = replace(post.content)
+      end
+    end
+
+    def replace(content)
+      content.gsub!(/ü/, '&uuml;')
+      content.gsub!(/Ü/, '&Uuml;')
+      content.gsub!(/ö/, '&ouml;')
+      content.gsub!(/Ö/, '&Ouml;')
+      content.gsub!(/ä/, '&auml;')
+      content.gsub!(/Ä/, '&Auml;')
+      content.gsub!(/ß/, '&szlig;')
+      content.gsub!(/ẞ/, '&#7838;')
+
+      content
+    end
+  end
+end
\ No newline at end of file
index 81bae23..ceee8b4 100644 (file)
@@ -18,6 +18,7 @@ $breakpoints: (
 // Colors definitions
 $base03:    rgb(  0,  43,  54);
 $base02:    rgb(  7,  54,  66);
+$base04:    rgb( 38,  66,  78);
 $base01:    rgb( 88, 110, 117);
 $base00:    rgb(101, 123, 131);
 $base0:     rgb(131, 148, 150);
@@ -73,7 +74,7 @@ blockquote, q {
 }
 
 table {
-    border {
+    border: {
         collapse: collapse;
     }
 }
@@ -100,24 +101,27 @@ body {
 
 a {
     text-decoration: none;
-    // border-bottom: 1px solid $base0;
     padding-bottom: 2px;
     color: $cyan;
-    border-color: $base02;;
+    border-color: $base02;
 
     &:active, &:visited {
         color: $cyan;
-        border-color: $base02;;
+        border-color: $base02;
         text-decoration: none;
-        // border-bottom: 1px solid $base0;
         padding-bottom: 2px;
     }
 
     &:hover {
-        background-color: $base02;;
-        border-color: $base02;;
+        background-color: $base02;
+        border-color: $base02;
         color: $cyan;
     }
+
+    &.year-link {
+        color: $yellow;
+        border-bottom: 1px solid $base01;
+    }
 }
 
 h1, h2, h3 {
@@ -132,10 +136,11 @@ h1 a {
     }
 
     &:hover {
-        background-color: $base02;;
-        border-color: $base02;;
+        background-color: $base02;
+        border-color: $base02;
         color: $red;
     }
+
 }
 
 p, pre {
@@ -156,6 +161,41 @@ ol, ul {
     }
 }
 
+table {
+    td {
+        &.postdate {
+            width: 15vw;
+        }
+        &.postlink {
+            width: 75vw;
+        }
+        &.categoryposts {
+            width: 10vw;
+            text-align: right;
+        }
+        &.yearcell {
+            color: $yellow;
+            text-align: center;
+        }
+    }
+
+    tr {
+        &.even {
+            background-color: $base04;
+        }
+        &.yearline {
+            font: {
+                size: 15px;
+                size: 1.8em;
+            }
+            margin: 0 0 10px 0;
+        }
+    }
+    thead {
+        text-align: right;
+    }
+}
+
 em, i {
     font-style: italic;
 }
@@ -200,13 +240,13 @@ acronym, abbr {
     border-bottom: 1px dashed;
 }
 
-@each $hlev, $fspx, $fsrel in (h1, 17, 4.0),
-(h2, 15, 3.0),
-(h3, 15, 2.0) {
+@each $hlev, $fspx, $fsrel in (h1, 17, 2.7),
+(h2, 15, 1.8),
+(h3, 15, 1.4) {
     #{$hlev} {
         font: {
             size: #{$fspx}px;
-            size: #{$fsrel}vw;
+            size: #{$fsrel}em;
         }
         margin: 0 0 10px 0;
     }
@@ -341,8 +381,8 @@ acronym, abbr {
     width: 75vw;
     margin: 50px auto 20px auto;
     padding-top: 10px;
-    border-top: 1px solid $base02;;
-    border-color: $base02;;
+    border-top: 1px solid $base02;
+    border-color: $base02;
     @include media('all', '<tablet' ) {
         width: 100vw;
     }
@@ -393,7 +433,7 @@ acronym, abbr {
         border: none;
         &:hover {
             color: $cyan;
-            background-color: $base02;;
+            background-color: $base02;
         }
         padding: 2px 4px;
     }
index 303b7bb..a06d4fc 100644 (file)
@@ -3,19 +3,29 @@ layout: default
 title: Archives
 ---
 
-<div id="blog-archives">
-
-       {% for post in site.posts %}
-               <article class="post">
-                       {% if post.external-url %}
-                               <h1>
-                                 <a href="{{ post.external-url }}">{{ post.title  | markdownify  }}</a> 
-                                 <a class="anchor" href="{{ post.url }}"><i class="icon-anchor"></i></a>
-                               </h1>
-                               {% else %}
-                               <h1><a href="{{ post.url }}">{{ post.title  | markdownify }}</a></h1>
-                       {% endif %}
-               </article>
-       {% endfor %}
-
-</div>
+<h1>Blog archive</h1>
+<table>
+  <tbody>
+{% for post in site.posts %}
+{% assign loopindex = forloop.index | modulo: 2 %}
+{% assign currentdate = post.date | date: "%Y" %}
+{% if currentdate != date %}
+    <tr class="yearline">
+      <td class="yearcell" colspan="2">
+        <a href="/{{currentdate}}" class="year-link" title="Link to Year {{currentdate}}">{{ currentdate }}</a>
+      </td>
+    </tr>
+  {% assign date = currentdate %}
+{% endif %}
+    {% if loopindex == 1 %}
+    <tr class="odd">
+    {% else %}
+    <tr class="even">
+    {% endif %}
+      <td class="postdate"><time datetime="{{post.date | date_to_xmlschema}}">{{ post.date | date: "%d. %B" }}</time>
+      </td>
+      <td class="postlink"><a href="{{ post.url }}">{{ post.title | markdownify }}</a></td>
+    </tr>
+{% endfor %}
+</tbody>
+</table>
diff --git a/category/index.html b/category/index.html
new file mode 100644 (file)
index 0000000..4355ea1
--- /dev/null
@@ -0,0 +1,39 @@
+---
+layout: default
+---
+<h1>Categories</h1>
+<table>
+  <thead>
+    <th>&nbsp;</th>
+    <th># Posts</th>
+  </thead>
+  <tbody>
+   {% assign tags_list = site.categories | sort %}
+   {% if tags_list.first[0] == null %}
+   {% for tag in tags_list %}
+   {% assign loopindex = forloop.index | modulo: 2 %}
+   {% if loopindex == 1 %}
+   <tr class="odd">
+   {% else %}
+   <tr class="even">
+   {% endif %}
+     <td><a href="/category/{{ tag }}">{{ tag | capitalize }}</a></td>
+     <td class="categoryposts">{{ site.tags[tag].size }}</td>
+   </tr>
+   {% endfor %}
+   {% else %}
+   {% for tag in tags_list %}
+   {% assign loopindex = forloop.index | modulo: 2 %}
+   {% if loopindex == 1 %}
+   <tr class="odd">
+   {% else %}
+   <tr class="even">
+   {% endif %}
+     <td><a href="/category/{{ tag[0] }}">{{ tag[0] | capitalize }}</a></td>
+     <td class="categoryposts">{{ tag[1].size }}</td>
+   </tr>
+   {% endfor %}
+   {% endif %}
+   {% assign tags_list = nil %}
+  </tbody>
+</table>
diff --git a/page/index.html b/page/index.html
deleted file mode 100644 (file)
index 22ca0e9..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang='en-GB'>
-  <head>
-    <title>Nothing to see here</title>
-    <meta http-equiv="refresh" content="0; URL=/">
-  </head>
-  <body>
-    Go <a href="/" >/</a> here.
-  </body>
-</html>