Gehaxelts Blog

IT-Security & Hacking

Octopress auf dem Uberspace

Es ist nun schon fast eine Woche her, seit dem ich auf das Blog CMS Octopress umgestiegen bin.

Aufgrund einer Nachfrage, möchte ich nun beschreiben, wie man diesen sich auf dem Uberspace einrichtet.

Vorbereitungen

Zunächst müssen wir auf dem Uberspace einige Vorbereitungen treffen, um die später folgenden Befehle ohne Probleme nutzen zu können.

Ein

echo "gem: --user-install --no-rdoc --no-ri" > ~/.gemrc

sorgt dafür, dass wir später nicht beim Installieren der Gems Probleme mit den Schreibrechten bekommen, und diese nur für unseren Uberspace installiert werden.

Installation von Octopress

Ich nehme an, dass wir uns im Home-Ordner ~ befinden und unser Octopress in ~/octopress installieren möchten.

Es wird dann Zeit, die aktuelle Octopress von Github zu clonen:

git clone git://github.com/imathis/octopress.git octopress

Nun sollte der Ordner ~/octopress angelegt sein, und man kann nun darein wechseln:

cd octopress

Um später die Versionen der Gems besser zu verwalten nutzen, wie den Bundler, welchen wir mit den folgenden Befehlen einrichten und für den Uberspace konfigurieren:

gem install bundler
bundle install --path ~/.gem

Danach können wir das Standard-theme installieren, welches man später noch bearbeiten kann:

rake install

Konfiguration von Octopress

Theoretisch war es das jetzt schon mit der Installation, und nun muss man nur noch ein paar Konfigurationsdateien anpassen.

Zuächst wäre da die _config.yml, in der die verschiedenen Optionen zur Erzeugung des Blogs festgelegt sind.

Mit dem Editor nano können wir die Datei folgendermaßen bearbeiten:

nano _config.yml

Dort sollte man die ersten Zeilen, in denen Blog-url, -titel, -subtitle, -author, anpassen, damit der Header korrekt erstellt wird.

An den Pfaden des Jekyll und der Plugins braucht man standardmäßig nichts mehr zu verändern.

Wer die ganz unten stehenden social-Plugins nutzen möchte, sollte aus den Angaben Benutzername, True/False selbst schlau werden, und diese damit aktivieren können.

Nachdem wir die Blogeinstellungen bearbeitet haben, müssen wir uns noch um die Einstellungen des Deploying, also dem Hochladen der neu erstellten Dateien, kümmern.

Diese Einstellungen findet man in dem Rakefile.

Dort bearbeitet man ebenfalls nur die entsprechend gekennzeichneten Konfigurationszeilen.

Diese können zum Beispiel so aussehen:

ssh_user       = "gehaxelt@gehaxelt.in"
ssh_port       = "22"
document_root  = "/var/www/virtual/gehaxelt/gehaxelt.in/"
rsync_delete   = true
deploy_default = "rsync"

Wichtig ist, dass in der ersten Zeile vor dem ‘@’ der Benutzername eures Uberspaces steht, mit dem ihr euch auch auf der Shell einloggt.

Die dritte Angabe ist der Pfad, in de der Blog abgelegt werden soll.

Umzug von Wordpress

Man praktisch schon jetzt ohne Probleme Beiträge bearbeiten, aber ich möchte noch einen kurzen Einschub machen und beschreiben, wie man bestehende Beiträge von Wordpress nach Octopress umziehen kann.

Wer dies schon getan hat, oder nicht tun möchte, kann diesen Absatz einfach überspringen.

Ansonsten wechseln wir in den Home-Ordner und clonen exitwp von Github:

cd ~
git clone https://github.com/thomasf/exitwp exitwp

Dann muss man wieder ein paar Vorbereitungen Seits Uberspace treffen:

  • Python2.7 einrichten
1
mkdir -p ~/bin ~/lib/python2.7 
  • PyYAML installieren
1
 easy_install-2.7 pyYAML
  • html2text installieren
1
easy_install-2.7 html2text
  • Beatuful soup installieren
1
easy_install-2.7 beautifulsoup

Danach müssen wir nur noch unseren Wordpressinhalt als XML Datei exportieren, dann klappt im Wordpress-Dashbaord über Werkzeuge->Exportieren.

Diese Datei müssen wir dann wieder per FTP in das Verzeichnis ~/exitwp~/wordpress-xml/ hochladen.

Nach einem Wechsel in das Verzeich kann man folgenden Befehl ausführen und einem werden die mardown-Dateien erstellt, welche man für Octopress benötigt:

cd ~/exitwp
python2.7 exitwp.py

Nun sollten wir unseren Wordpressblog ins Octopressformat gebracht haben, und die Dateien liegen im Ordner ~/exitwp/build/jekyll/DEINEBLOGURL .

Diese müssen wir nur noch in unsere Octopressinstallation kopieren:

cd -r ~/exitwp/build/jekyll/DEINEBLOGURL/* ~/octopress/soure/

Nun ist der Umzug zu theoretisch fertig, in der Praxis aber erst zu 15%, denn man muss jetzt alle Beiträge einzeln durchgehen, und die Anzeige/Export-Unschönheiten beheben, z.B. nicht ganz zitierte Zitate, Überschriften,..

Das hat bei meinen ~100 Beiträgen fast 4 Stunden gedauert, dort überall drüberzuschauen und die kleinen Fehler zu beheben.

Beiträge schreiben

Möchte man nun einen Beitrag verfassen, dann geht das am Einfachsten über den Befehl

rake new_post["Mein neuer Beitragstitel"]

Wenn euch dann eine Fehlermeldung ausgegeben wird, welche ungefähr so ähnlich lautet:

rake aborted!
You have already activated rake 0.9.2.2, but your Gemfile requires rake 0.9.2. Using bundle exec may solve this.
(See full trace by running task with --trace)

Dann müsst ihr, wie vorgeschlagen ein bundle exec vor die rake-Befehle setzen:

bundle exec rake new_post["Mein neuer Beitragstitel"]

Dann wird eine neue Datei im source/_posts-Ordner angelegt, und euch der Dateiname ausgegeben.

Nun könnt ihr diese Datei mit einem Editor, wie dem nano öffnen, und nachdem ihr die Kategorie bzw. die Tags im Headerbereich gesetzt habt, euren Inhalt verfassen.

Der Header kann dabei so aussehen:

--
layout: post
title: "Octopress auf dem Uberspace"
date: 2012-05-04 19:25
comments: true
categories:
- Texttutorials
tags:
- Octopress
- Uberspace
- HowTo
---

Wie, ihr beim Verfassen, die Markdownsprache korrekt verwendet, findet ihr auf der Seite des Erfinders gut beschrieben.

Seiten erstellen

Für das Erstellen von Seiten ist es ganz ähnlich, dort verwendet man dann nur new_page:

(bundle exec) rake new_page["Neue Seite"]

Das bundle exec ist in Klammern, je nach dem ob ihr es braucht, oder eben nicht.

Diese Seiten möchte man dann bestimmt auch noch verlinken, sodass diese später in der Navigation auftauchen.

Dazu müssen wir die Navigationsdatei bearbeiten

nano ~/octopress/source/_includes/custom/navigation.html

und dort für jeden Tab jeweils ein li-Element mit dem Link zur Seite angeben, dabei kann man das Schema der vorhanden Einträge beibehalten.

Seite(n) hochladen

Hat man nun einige Beiträge oder Seiten verfasst, möchte man seinen Blog auf den neusten Stand bringen.

Dazu muss man den Blog erstmal erstellen, also die mardown-Dateien müssen in eine HTML-Datei umgesetzt werden.

(bundle exec) rake generate

Mit diesem Befehl wird der Blog komplett neu generiert, und im Ordner ~/octopress/public abgelegt.

Jetzt müssen diese Seiten noch hochgeladen werden, und dies erfolgt mit einem Deploy:

(bundle exec) rake deploy

Ihr werdet aufgefordert ein Passwort einzugeben, was genau dem Loginpassord zur Shell entspricht.

Plugins

Man kann Octopress mit verschiedenen, in ruby geschriebenen, Plugins erweitern.

Octopress bringt von Haus aus, einige nützliche Plugins mit, welche man gleich nutzen kann.

Eine Liste führt der Octopress Blog.

Ich habe es nicht geschafft, das Codeblock-Plugin mit Pygments zum Laufen zu kriegen. Sollte es jemand hinbekommen, würde ich mich über eine Nachricht freuen.

Viel Spaß beim Bloggen

Ich denke, ich habe hier genug zu den ersten Schritten geschrieben, und ihr könnt jetzt eure Wordpressinstallation nun umziehen und das superschnelle Octopress nutzen.

Man kann bei Octopress alles eigentlich selbst einstellen, bzw. nachbearbeiten, was die Plugins oder das Design angeht.

Wenn ihr einen Octopress-Blog aufmacht, dann hinterlasst ein Kommentar, und lese mal drüber, oder wir werden Partner.

Gruß

gehaxelt

Texttutorials

« Erste eigene App - MyIP Octopress mit Fancybox »