Was ich so treibe...

Uli's IT-Blog - Konzeption, Entwicklung, Betrieb

Octopress-2.1

Meine Tests mit Octopress-2.1

Ausgangspunkt ist meine “normale” Octopress-Installation:

Normale Octopress-Installation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
octopress$ git branch -a
  master
* source
  remotes/octopress/2.1
  remotes/octopress/gh-pages
  remotes/octopress/linklog
  remotes/octopress/master
  remotes/octopress/refactor_with_tests
  remotes/octopress/rubygemcli
  remotes/octopress/site
  remotes/origin/HEAD -> origin/master
  remotes/origin/gh-pages
  remotes/origin/master
  remotes/origin/source

Mit diesem Setup kann man nun umschalten auf Version 2.1:

Umstellen auf Octopress-2.1
1
2
3
4
5
6
7
8
9
octopress$ export LANG=C.UTF-8
octopress$ git checkout -t remotes/octopress/2.1
Branch 2.1 set up to track remote branch 2.1 from octopress by rebasing.
Switched to a new branch '2.1'
octopress$ bundle install
octopress$ rake install
octopress$ rake generate
octopress$ rake preview
# Browser: http://localhost:4000

Hier meine ersten Eindrücke:

  • Code-Blöcke verwenden nun weißen Hintergrund, was für mich deutlich lesbarer und ansprechender aussieht
  • Blog-Einträge mit published: false werden nicht veröffentlicht, in 2.0 werden alle Blog-Einträge veröffentlicht
  • Bei RVM wird Ruby-1.9.2 “angezogen”, es funktioniert aber auch mit 1.9.3
  • Beim Drücken auf “Blog” erscheint in der Leiste rechts keine Liste der Blog-Einträge – source/_includes/sidebars/blog_index_default.html
  • Bei Überschriften werden die ersten Buchstaben immer groß geschrieben (also: So Eine Überschrift) – _config.yml, titlecase
  • Datumsangaben erfolgen in Englisch (wie bei 2.0) – etwas kompliziert zu ändern
Anpassungen an Octopress-2.1
1
2
3
git branch -m 2.1 source-2.1
git checkout source-2.1
git push -u origin source-2.1

Eigenes Darstellungsthema erzeugen

Kopie des Standards-Themas anlegen

Eigenes Darstellungsthema f
1
2
3
cp -a .themes/classic .themes/uli
git add .themes/uli
git commit -m ".themes: classic -> uli"

Anpassungen von Octopress-2.0 übernehmen

  • Historie vom Zweig “source” durchsuchen nach den dort erledigten Änderungen am Thema
  • Übernehmen der Änderungen in den Zweig “source-2.1”
Anpassungen des Darstellungsthemas von Octopress-2.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Sichten der Historie
octopress$ git log --oneline ..source -- .themes/uli
b941c1c Anpassungen am Layout
1cfd652 cp -a .themes/classic .themes/uli
# Änderungen in source-2.1 übernehmen
octopress$ git rebase -i --onto source-2.1 1cfd652 b941c1c
# Konflikt wird angezeigt -> auflösen und festschreiben (committen)
octopress$ ...
# Zustand sichten
octopress$ gitk
# "Detached head", source-2.1 liegt ein wenig "zurück"
octopress$ git checkout -b tmp
octopress$ git checkout -B source-2.1 tmp
octopress$ git branch -d tmp

Darstellungsthema aktivieren

Anpassungen des Darstellungsthemas von Octopress-2.0
1
2
3
4
5
6
7
8
9
octopress$ rake install['uli']
A theme is already installed, proceeding will overwrite existing files. Are you sure? [y/n] y
## Copying uli theme into ./source and ./sass
mkdir -p source
cp -r .themes/uli/source/. source
mkdir -p sass
cp -r .themes/uli/sass/. sass
mkdir -p source/_posts
mkdir -p public

Blog-Einträge von Octopress-2.0 übernehmen

Dokumente von Octopress-2.0
1
2
3
4
git add source
git commit -m "Quelltexte in's Repository aufgenommen" .
git checkout source -- ./source/_posts
git commit -m "Blog-Einträge kopiert von 'source'" ./source

Einstellungen anpassen

Grundeinstellungen

Einstellungen anpassen - _config.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@@ -2,10 +2,10 @@
 #      Main Configs       #
 # ----------------------- #

-url: http://yoursite.com
-title: My Octopress Blog
-subtitle: A blogging framework for hackers.
-author: Your Name
+url: http://uli-heller.github.com
+title: Was ich so treibe...
+subtitle: Java, Linux und Groovy
+author: Uli Heller
 simple_search: http://google.com/search
 description:

Überschriften – keine Großbuchstaben

Keine Gro
1
2
3
4
5
6
7
8
9
10
@@ -49,7 +49,7 @@
 linklog_marker_position: after
 linklog_marker_position_feed: after
 standard_post_marker:

-titlecase: true       # Converts page and post titles to titlecase
+titlecase: false       # Converts page and post titles to titlecase

 # To change the layout's default sidebar Add a new sidebar source/_includes/sid
 # then make changes below, eg. post_sidebar: your_sidebar.html

Deutsche Übersetzungen

Die Ideen sind weitgehend “geklaut” von Roger Schärer. In folgenden Dateien sind englische Texte hinterlegt:

  • _config.yml … OK
  • source/_includes/archive_post.html … OK
  • source/includes/asides/recent_posts.html … nicht gefunden source/includes/sidebars/sections/recent_posts.html
  • source/includes/asides/twitter.html .. nicht gefunden source/includes/sidebars/sections/twitter.html
  • source/_includes/custom/navigation.html
  • source/_includes/navigation.html
  • source/_includes/post/author.html
  • source/_layouts/post.html
  • source/_layouts/posts.html … nicht gefunden
  • source/_layouts/page.html … nicht gefunden
  • source/index.html
  • source/blog/archives/index.html … nicht gefunden source/archives/index.html

Die meisten dieser Änderungen führe ich nicht direkt an den Dateien unterhalb von “source” durch, sondern in meinem Themenverzeichnis “.themes/uli”. Von dort kann ich sie dann mittels rake install['uli'] aktivieren.

Deutsche Datumsangaben

Das grundätzliche Vorgehen kommt von Marc . Er schreibt allerdings, dass man als Einstellung für das Format “ordinal” verwenden muß. Grund hierfür ist eine Unschönheit in seiner Implementierung der Methode “format_date”. Bei meiner Variante kann man auch beliebige andere Einstellungen verwenden. Ich verwende beispielsweise “%d. %B %Y”.

Deutsche Datumsangaben - plugins/date.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
@@ -1,5 +1,57 @@
+# -*- coding: utf-8 -*-
 module Octopress
   module Date
+    #Deutsche Lokalisation:
+    MONTHNAMES_DE = [nil,
+      "Januar", "Februar", "März", "April", "Mai", "Juni",
+      "Juli", "August", "September", "Oktober", "November", "Dezember" ]
+    ABBR_MONTHNAMES_DE = [nil,
+      "Jan", "Feb", "Mär", "Apr", "Mai", "Jun",
+      "Jul", "Aug", "Sep", "Okt", "Nov", "Dez" ]
+    DAYNAMES_DE = [
+      "Sonntag", "Montag", "Dienstag", "Mittwoch",
+      "Donnerstag", "Freitag", "Samstag" ]
+    ABBR_DAYNAMES_DE = [
+      "So", "Mo", "Di", "Mi",
+      "Do", "Fr", "Sa" ]
+
+    # Returns a datetime if the input is a string
+    def datetime(date)
+      if date.class == String
+        date = Time.parse(date)
+      end
+      date
+    end
+
+    # in _config.yml muss stehen: date_format: ordinal 
+    def ordinalize(date)
+      #**** hier Format bei Bedarf ändern, z.B. %A für ausgeschriebenen Wochent
+      format_date(date, "%a, %e. %B %Y") # SA, 10. MÄRZ 2012
+    end
+
+
+    # Formats date either as ordinal or by given date format
+    # Adds %o as ordinal representation of the day
+    def format_date(date, format)
+      myformat = format.dup
+      date = datetime(date)
+      if format.nil? || format.empty? || format == "ordinal"
+        date_formatted = ordinalize(date) 
+      else
+        myformat.gsub!(/%a/, ABBR_DAYNAMES_DE[date.wday])
+        myformat.gsub!(/%A/, DAYNAMES_DE[date.wday])
+        myformat.gsub!(/%b/, ABBR_MONTHNAMES_DE[date.mon])
+        myformat.gsub!(/%B/, MONTHNAMES_DE[date.mon])
+        date_formatted = date.strftime(myformat)
+        # date_formatted = date.strftime(format)
+        # date_formatted.gsub!(/%o/, ordinal(date.strftime('%e').to_i))
+      end
+      date_formatted #+" ULI:#{date.mon}"
+    end
+
+  end
+
+  module DateEn

     # Returns a datetime if the input is a string
     def datetime(date)
@@ -95,4 +147,11 @@ module Jekyll
       self.data['updated_formatted'] = format_date(self.data['updated'], date_format) if self.data.has_key?('updated')
     end
   end
+
+  module Filters
+    include Octopress::Date
+    def date(date, format)
+      format_date(date, format)
+    end
+  end

Änderung an _config.yml, damit das Datum so angegeben wird: “25. Dezember 2012”

Datumsangaben ‘TT. Monat JJJJ’ - _config.yml
1
2
3
4
5
6
7
8
9
10
11
@@ -13,7 +13,11 @@ description:
 # You can customize the format as defined in
 # http://www.ruby-doc.org/core-1.9.2/Time.html#method-i-strftime
 # Additionally, %o will give you the ordinal representation of the day
-date_format: "ordinal"
+#  %d.%m.%Y" -> 25.12.2012
+#  %d. %B %Y" -> 25. December 2012 (oder 25. Dezember 2012)
+date_format: "%d. %B %Y"

 # RSS / Email (optional) subscription links (change if using something like Fee
 subscribe_rss: /atom.xml

GitHub-Pages reaktivieren

GutHub-Pages reaktivieren - Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@@ -9,13 +9,13 @@
 ssh_user       = "user@domain.com"
 ssh_port       = "22"
 document_root  = "~/website.com/"
 rsync_delete   = false
-deploy_default = "rsync"
+deploy_default = "push"

 # Hidden "dot" files that should be included with the deployed site (see task c
 copy_dot_files = []

 # This will be configured for you when you run config_deploy
-deploy_branch  = "gh-pages"
+deploy_branch  = "master"

 ## -- Misc Configs -- ##

Comments