diff --git a/creole_reader/Readme.md b/creole_reader/Readme.md
new file mode 100644
index 0000000..4db3eab
--- /dev/null
+++ b/creole_reader/Readme.md
@@ -0,0 +1,31 @@
+# Creole Reader
+
+This plugins allows you to write your posts using the wikicreole syntax. Give to
+these files the creole extension. The medata are between <>
+tags.
+
+## Syntax
+Use ** for strong, // for emphasis, one = for 1st level titles.
+
+For the complete syntax, look at: http://www.wikicreole.org/
+
+## Basic example
+```
+<>
+title: Créole
+tags: creole, python, pelican_open
+date: 2013-12-12
+<>
+
+= Title 1
+== Title 2
+
+Some nice texte with **strong** and //emphasis//.
+
+* A nice list
+** With subelements
+* Python
+
+# An ordered list
+# A second item
+```
diff --git a/creole_reader/__init__.py b/creole_reader/__init__.py
new file mode 100644
index 0000000..2e26d46
--- /dev/null
+++ b/creole_reader/__init__.py
@@ -0,0 +1 @@
+from .creole_reader import *
diff --git a/creole_reader/creole_reader.py b/creole_reader/creole_reader.py
new file mode 100644
index 0000000..49317c5
--- /dev/null
+++ b/creole_reader/creole_reader.py
@@ -0,0 +1,56 @@
+#-*- conding: utf-8 -*-
+
+'''
+Creole Reader
+-------------
+
+This plugins allows you to write your posts using the wikicreole syntax. Give to
+these files the creole extension.
+For the syntax, look at: http://www.wikicreole.org/
+'''
+
+from pelican import readers
+from pelican import signals
+from pelican import settings
+
+from pelican.utils import pelican_open
+
+try:
+ from creole import creole2html
+ creole = True
+except ImportError:
+ creole = False
+
+class CreoleReader(readers.BaseReader):
+ enabled = creole
+
+ file_extensions = ['creole']
+
+ def __init__(self, settings):
+ super(CreoleReader, self).__init__(settings)
+
+ def _parse_header_macro(self, text):
+ for line in text.split('\n'):
+ name, value = line.split(':')
+ name, value = name.strip(), value.strip()
+ if name == 'title':
+ self._metadata[name] = value
+ else:
+ self._metadata[name] = self.process_metadata(name, value)
+ return u''
+
+ # You need to have a read method, which takes a filename and returns
+ # some content and the associated metadata.
+ def read(self, source_path):
+ """Parse content and metadata of creole files"""
+
+ self._metadata = {}
+ with pelican_open(source_path) as text:
+ content = creole2html(text, macros={'header': self._parse_header_macro})
+ return content, self._metadata
+
+def add_reader(readers):
+ readers.reader_classes['creole'] = CreoleReader
+
+def register():
+ signals.readers_init.connect(add_reader)