Immaginate di volere una casa piccola ed accogliente, e di ritrovarvi con un appartamento di 200 mq.
Bene, ciò descrive un pò la sensazione che provo, da un pò di tempo, nell’utilizzare Wordpress.
Mi ritrovo a girovagare tra stili, formattazioni più o meno sofisticate, plugin di vario genere, ed il contenuto passa sistematicamente in secondo piano.
Per cui ho deciso di trovare un’alternativa che mi permettesse di puntare diritto al contenuto senza, distrazioni inutili e serendipità varie.
In pratica, un qualcosa che riducesse il mio appartamento ad un massimo di 50 mq.

E’ bastata una breve ricerca in rete per trovare Octopress.

Octopress è un framework per il più noto Jekyll, un generatore statico di siti web orientati al contenuto, senza database.
Ciò significa che i contenuti vengono creati e gestiti tutti in locale, ed a lavoro ultimato, viene generato il sito web statico, che verrà poi pubblicato online.
Gli articoli (o le pagine e altri contenuti) vengono scritti sottoforma di file di testo utilizzando linguaggi di markup molto intuitivi e poco invasivi, come markdown o textile.

##Installare Octopress sotto Linux

Dunque il primo passo è installare tutti i prerequisiti, ossia Ruby, RubyGems, Python e NodeJS.
Da terminale lanciare i seguenti comandi:

sudo apt-get install ruby
sudo apt-get install ruby-dev
sudo apt-get install python
sudo apt-get install nodejs
sudo apt-get install npm

Adesso possiamo installare Jekyll via RubyGems:

sudo gem install jekyll

ed installare qualche plugin:

sudo gem install octopress-codeblock octopress-codefence octopress-image-tag octopress-quote-tag octopress-solarized octopress-social octopress-linkblog octopress-filter-tag octopress-filters octopress-comment-tag jekyll-sitemap

##Installare Octopress in Windows

  • Scaricare l’ultima versione consigliata di Ruby da QUI ed installarla, facendo attenzione a selezionare la voce relativa alla creazione delle variabili d’ambiente1.
  • Scaricare il Development Kit compatibile con la versione di Ruby scaricata da QUI ed installarlo sotto c:\DevKit (o in un’altra directory a scelta).
  • Aprire il prompt dei comandi e spostarsi sotto la cartella di installazione del Development Kit.
  • Eseguire i seguenti comandi per configurare il Development Kit:

      ruby dk.rb init
      ruby dk.rb review
      ruby dk.rb install
    
  • Installare octopress via RubyGems:

      gem install octopress
    
  • Installare qualche plugin:

      gem install octopress-codeblock octopress-codefence octopress-image-tag octopress-quote-tag octopress-solarized octopress-social octopress-linkblog octopress-filter-tag octopress-filters octopress-comment-tag jekyll-sitemap
    

##Primo utilizzo

Sempre da terminale/prompt dei comandi posizionarsi nella cartella dove si vuole creare il sito e lanciare il seguente comando:

octopress new .

Nella cartella verrà creata tutta la struttura di octopress (l’ambiente di lavoro), che servirà a produrre le pagine statiche del nostro sito/blog.
Nella directory è presente il file di configurazione _config.yml necessario per la configurazione del sito (plugin, motere di markdown, permalinks, etc.).
Di seguito una configurazione di base2:

# Welcome to Jekyll!
#
# This config file is meant for settings that affect your whole blog, values
# which you are expected to set up once and rarely need to edit after that.
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'jekyll serve'. If you change this file, please restart the server process.

gems:
  #- octopress-codeblock
  #- octopress-codefence
  - octopress-image-tag
  #- octopress-quote-tag
  #- octopress-solarized
  - octopress-social
  #- octopress-linkblog
  - octopress-filter-tag
  - octopress-filters
  - octopress-comment-tag
  - jekyll-sitemap

# Site settings
title: TITLE.NET
subtitle: subtitle...
email: email@dominio.it
description: > # this means to ignore newlines until "baseurl:"
  Write an awesome description for your new site here. You can edit this
  line in _config.yml. It will appear in your document head meta (for
  Google search results) and in your feed.xml site description.
baseurl: "" # the subpath of your site, e.g. /blog
url: "http://localhost:4000" # the base hostname & protocol for your site
twitter_username: jekyllrb
github_username:  jekyll

# Build settings
markdown: kramdown

permalink: /blog/:year/:month/:day/:title/
excerpt_separator: <!--more-->  # you can specify your own separator, of course.

Informazioni dettagliate sulla configurazione sono disponibili qui.

Possiamo visualizzare in anteprima il sito attraverso il comando:

jekyll serve

ed aprendo il browser all’indirizzo http://localhost:4000

immagine

Lanciando invece il comando:

jekyll build

le pagine statiche del nostro sito vengono rigenerate nella directory _site

##Importare i contenuti da Worpress

A questo punto occorre importare articoli, pagine e altri contenuti da worpress.
Accedere al pannello di amministrazione del nostro worpress ed esportare tutti i contenuti da strumenti -> Esporta.

Verrà creato un file xml contenente tutti i contenuti del sito. Verifichiamo l’integrità e correttezza del file utilizzando il tool xmllint. Scarichiamo il tool, e diamo da terminale il seguente comando:

xmllint <percorso_file>/worpress.xml

dove <percorso_file> è il percorso della directory in cui si trova il nostro file xml da importare.

Il tool verificherà la correttezza del file, producendo in output, nel caso, una lista degli errori con i riferimenti di riga e colonna nel file. Correggere il file e ripetere l’operazione finchè tutti gli errori non saranno risolti.

Per importare il file in Jekyll possiamo utilizzare exitwp, una libreria di import completa, scritta in python.

  • Prerequisiti exitwp sotto Linux (Mint o Ubuntu)

      sudo apt-get install libyaml-dev python-dev build-essential
      sudo apt-get install python-yaml python-bs4 python-html2text	
    
  • Prerequisiti exitwp in Windows

    • Scaricare ed installare Python 2.7.11 da QUI
    • Aggiungere il percorso di installazione degli script python (solitamente C:\Python27\Scripts) nella variabile d’ambiente PATH (Pannello di controllo -> Sistema -> Impostazioni Avanzate -> Variabili d’ambiente)

A questo punto scarichiamo lo zip della libreria exitwp da QUI e scompattiamolo.
Spostiamoci nella cartella appena creata e copiamo il file xml da importare nella cartella wordpress-xml.

Da terminale spostiamoci nella cartella di exitwp e lanciamo il comando python exitwp.py per convertire i contenuti wordpress in formato markdown.

##Supporto per formule matematiche

Il supporto per le formule matematiche è facilmente integrabile con MathJax. Apriamo il file _includes/head.html ed aggiungiamo all’interno del tag <head> il seguente:

<script type="text/javascript"
	src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<script type="text/javascript">
	MathJax.Hub.Config({
		jax: ["input/TeX","output/HTML-CSS"],
		extensions: ["tex2jax.js","MathMenu.js","MathZoom.js"],
		tex2jax:
			{
				inlineMath: [ ['$','$'], ['\\(','\\)'] ],
				displayMath: [ ['$$','$$'], ['\\[','\\]'] ],
				skipTags: ["script","noscript","style","textarea","pre","code"],
				processEscapes: true
			},
		TeX:
			{
				equationNumbers: { autoNumber: "AMS" },
				TagSide: "left",

			},
		"HTML-CSS": { availableFonts: ["TeX"] }
		});
</script>
  1. http://jekyll-windows.juthilo.com/ 

  2. I plugin octopress-codeblock, octopress-codefence, octopress-image-tag, octopress-quote-tag, octopress-solarized, octopress-linkblog cui si fa riferimento nella configurazione di base mostrata presentano dei bug nella loro versione attuale, e pertanto sono stati commentati.