diff --git a/dynastie/generators/ljdc.py b/dynastie/generators/ljdc.py
new file mode 100755
index 0000000..74bdaaa
--- /dev/null
+++ b/dynastie/generators/ljdc.py
@@ -0,0 +1,85 @@
+# -*- coding: utf-8 -*-
+"""
+ Copyright 2012-2014 Grégory Soutadé
+
+ This file is part of Dynastie.
+
+ Dynastie is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Dynastie is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Dynastie. If not, see .
+"""
+import os
+from xml.dom.minidom import parse, parseString
+import xml.parsers.expat
+from dynastie.generators.generator import DynastieGenerator
+from dynastie.generators.index import Index
+from django.db import models
+
+class LJDC(Index):
+
+ cur_page = 0
+ nb_pages = 0
+ cur_post = 0
+ posts_per_page = 20
+ filename = 'index'
+ dirname = '/ljdc'
+ cur_category = None
+
+ def createPost(self, posts, dom, post_elem, root):
+ new_elem = self.createElement(dom, 'ljdc')
+
+ address = self.cur_post_obj.getElementsByTagName('address')[0]
+ a = dom.createElement('a')
+ a.setAttribute('href', address.childNodes[0].nodeValue)
+
+ title_value = self.cur_post_obj.getElementsByTagName('title')[0]
+ title = self.createElement(dom, 'title', title_value.childNodes[0].nodeValue)
+ a.appendChild(title)
+
+ img_src = self.cur_post_obj.getElementsByTagName('img')[0]
+ img = dom.createElement('img')
+ img.setAttribute('src', img_src.childNodes[0].nodeValue)
+
+ a.appendChild(img)
+
+ new_elem.appendChild(a)
+
+ self.cur_post_obj = None
+
+ return new_elem
+
+ def generate(self, blog, src, output):
+ from dynastie.models import Post, Blog, Category
+
+ name = '_ljdc.xml'
+ if not os.path.exists(src + '/%s' % name):
+ self.addWarning('No %s found, exiting' % name)
+ return None
+
+ try:
+ srcdom = parse(src + '/%s' % name)
+ except xml.dom.DOMException as e:
+ self.addError('Error parsing %s : ' + e)
+ return None
+
+ posts = srcdom.getElementsByTagName("entry")
+
+ dom = self.parseTemplate(blog, src, output, 'ljdc', 'ljdc')
+ if dom is None: return self.report
+
+ self.generatePages(dom, posts, src, output, 'ljdc')
+
+ if not self.somethingWrote:
+ self.addReport('Nothing changed')
+
+ return self.report
+
diff --git a/dynastie/sites/blog.soutade.fr/_generators b/dynastie/sites/blog.soutade.fr/_generators
new file mode 100755
index 0000000..16985e9
--- /dev/null
+++ b/dynastie/sites/blog.soutade.fr/_generators
@@ -0,0 +1,9 @@
+post
+index
+category
+tag
+archive
+atom
+rss
+all_posts
+ljdc
\ No newline at end of file
diff --git a/dynastie/sites/blog.soutade.fr/_ljdc.html b/dynastie/sites/blog.soutade.fr/_ljdc.html
new file mode 100644
index 0000000..69d6e55
--- /dev/null
+++ b/dynastie/sites/blog.soutade.fr/_ljdc.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
Best of les joies du code
+
+
+
+
diff --git a/dynastie/sites/blog.soutade.fr/_ljdc.xml b/dynastie/sites/blog.soutade.fr/_ljdc.xml
new file mode 100644
index 0000000..7f09366
--- /dev/null
+++ b/dynastie/sites/blog.soutade.fr/_ljdc.xml
@@ -0,0 +1,244 @@
+
+
+
+
+ 79348684503
+ http://lesjoiesducode.fr/post/79348684503/quand-je-commence-a-developper-sous-linux-apres
+ quand je commence à développer sous Linux après plusieurs années passées sous Windows
+ http://ljdchost.com/Ma1feZq.gif
+
+
+ 79169643105
+ http://lesjoiesducode.fr/post/79169643105/quand-un-proche-me-demande-encore-une-fois-de-reparer
+ quand un proche me demande encore une fois de "réparer son Facebook"
+ http://ljdchost.com/MxFZvNI.gif
+
+
+ 78753329421
+ http://lesjoiesducode.fr/post/78753329421/la-dev-team-quand-la-mise-en-prod-fonctionne-du-premier
+ la dev team quand la mise en prod fonctionne du premier coup
+ http://ljdchost.com/iQybVzt.gif
+
+
+ 76430309812
+ http://lesjoiesducode.fr/post/76430309812/quand-git-blame-balance-qui-a-ecrit-le-code-que-la
+ quand "git blame" balance qui a écrit le code que la team a passé 2 jours à debugger
+ http://ljdchost.com/ibz52ZxNgAM2oA.gif
+
+
+ 76414125378
+ http://lesjoiesducode.fr/post/76414125378/la-difference-entre-lintitule-du-stage-et-le-stage-en
+ la différence entre l'intitulé du stage et le stage en question
+ http://ljdchost.com/ScSsJaG.gif
+
+
+ 74262291448
+ http://lesjoiesducode.fr/post/74262291448/quand-je-prends-en-charge-le-support-utilisateur
+ quand je prends en charge le support utilisateur
+ http://ljdchost.com/iREPuffTNOthP.gif
+
+
+ 74168932838
+ http://lesjoiesducode.fr/post/74168932838/quand-je-developpe-une-appli-facebook-et-que-le-boss
+ quand je développe une appli Facebook et que le boss jette un oeil à mon écran
+ http://ljdchost.com/zjik30m.gif
+
+
+ 73935666374
+ http://lesjoiesducode.fr/post/73935666374/quand-le-sysadmin-a-mal-configure-le-proxy
+ quand le sysadmin a mal configuré le proxy
+ http://ljdchost.com/o5LbzNy.gif
+
+
+ 73394310782
+ http://lesjoiesducode.fr/post/73394310782/quand-mon-pc-rame-sans-raison-et-que-jai-des-choses
+ quand mon PC rame sans raison et que j'ai des choses urgentes à faire
+ http://ljdchost.com/i2rMts44clHLw.gif
+
+
+ 72660713690
+ http://lesjoiesducode.fr/post/72660713690/quand-je-cache-des-bugs-au-chef
+ quand je cache des bugs au chef
+ http://ljdchost.com/dBATah1.gif
+
+
+ 69485497531
+ http://lesjoiesducode.fr/post/69485497531/quand-les-collegues-se-ramassent-sur-un-projet-sur
+ quand les collègues se ramassent sur un projet sur lequel je ne travaille pas
+ http://i.imgur.com/4YwDi.png
+
+
+ 68966745060
+ http://lesjoiesducode.fr/post/68966745060/quand-je-teste-une-requete-sql-monstrueuse-et-que-je
+ quand je teste une requête SQL monstrueuse et que je m'aperçois que j'ai oublié une parenthèse
+ http://ljdchost.com/7ZGdjjk.gif
+
+
+ 68348831778
+ http://lesjoiesducode.fr/post/68348831778/quand-je-publie-une-appli-jeu-concours-qui-a-ete-teasee
+ quand je publie une appli jeu-concours qui a été teasée à mort
+ http://ljdchost.com/ibgETFO7jGDq2n.gif
+
+
+ 67562114278
+ http://lesjoiesducode.fr/post/67562114278/quand-la-nouvelle-developpeuse-casse-mon-code
+ quand la nouvelle développeuse casse mon code
+ http://ljdchost.com/gtXEh5k.gif
+
+
+ 66175879670
+ http://lesjoiesducode.fr/post/66175879670/quand-un-collegue-fait-un-force-commit-de-son-code
+ quand un collègue fait un force commit de son code "testé"
+ http://ljdchost.com/17ZvQW7.gif
+
+
+ 65985797316
+ http://lesjoiesducode.fr/post/65985797316/quand-je-tente-de-faire-adopter-de-nouvelles
+ quand je tente de faire adopter de nouvelles technologies à mon boss
+ http://ljdchost.com/2yLYnwm.gif
+
+
+ 65325325887
+ http://lesjoiesducode.fr/post/65325325887/premier-jour-de-production-de-lappli
+ premier jour de production de l'appli
+ http://ljdchost.com/h72rDqA.gif
+
+
+ 65028123102
+ http://lesjoiesducode.fr/post/65028123102/quand-je-lance-un-script-sensible-en-prod
+ quand je lance un script sensible en prod
+ http://ljdchost.com/SQ23RQv.gif
+
+
+ 62889465788
+ http://lesjoiesducode.fr/post/62889465788/quand-mes-15-lignes-de-code-font-buguer-les-5000-codees
+ quand mes 15 lignes de code font buguer les 5000 codées par mon collègue
+ http://ljdchost.com/i1iPnQGiNMMcS.gif
+
+
+ 62226484904
+ http://lesjoiesducode.fr/post/62226484904/quand-jevite-de-justesse-une-integration-sous-ie
+ quand j'évite de justesse une intégration sous IE
+ http://ljdchost.com/ibrcM4QCUzuO4F.gif
+
+
+ 61755928134
+ http://lesjoiesducode.fr/post/61755928134/a-chaque-fois-que-je-dois-corriger-un-bug
+ à chaque fois que je dois corriger un bug
+ http://ljdchost.com/ibwJNFK7KOextP.gif
+
+
+ 61095633488
+ http://lesjoiesducode.fr/post/61095633488/quand-on-teste-la-release-pour-la-premiere-fois
+ quand on teste la release pour la première fois
+ http://ljdchost.com/iNBfqcRWVujkK.gif
+
+
+ 60257064090
+ http://lesjoiesducode.fr/post/60257064090/quand-le-chef-me-surveille-de-loin-sur-mon-pc
+ quand le chef me surveille de loin sur mon PC
+ http://ljdchost.com/rJoXjxb.gif
+
+
+ 55159334107
+ http://lesjoiesducode.fr/post/55159334107/quand-la-concurrence-nous-rend-visite-sur-un-salon
+ quand la concurrence nous rend visite sur un salon
+ http://ljdchost.com/UA3XKTA.gif
+
+
+ 54659996060
+ http://lesjoiesducode.fr/post/54659996060/quand-le-sysadmin-passe-par-lopen-space-pour-rebooter
+ quand le sysadmin passe par l'open space pour rebooter un serveur crashe par l'applicatif
+ http://ljdchost.com/Oxdx7cS.gif
+
+
+ 53193488681
+ http://lesjoiesducode.fr/post/53193488681/quand-je-montre-au-stagiaire-comment-devrait-se-passer
+ quand je montre au stagiaire comment devrait se passer une mise en prod
+ http://ljdchost.com/iOON215zIRp7s.gif
+
+
+ 52787691243
+ http://lesjoiesducode.fr/post/52787691243/quand-je-pense-que-ma-correction-est-passee-en-prod
+ quand je pense que ma correction est passée en prod alors que je suis en local
+ http://ljdchost.com/uP2Urzr.gif
+
+
+ 50079464381
+ http://lesjoiesducode.fr/post/50079464381/quand-je-veux-utiliser-la-derniere-api-en-version-beta
+ quand je veux utiliser la dernière API en version bêta dans un projet en prod
+ http://ljdchost.com/yidIDyA.gif
+
+
+ 49930756926
+ http://lesjoiesducode.fr/post/49930756926/quand-mon-try-catch-ne-fonctionne-pas
+ quand mon try-catch ne fonctionne pas
+ http://ljdchost.com/ZKMvZ0O.gif
+
+
+ 47194170613
+ http://lesjoiesducode.fr/post/47194170613/quand-le-chef-veut-faire-le-point-a-5-heures-le
+ quand le chef veut faire le point à 5 heures le vendredi
+ http://ljdchost.com/E1DhQgU.gif
+
+
+ 46420018667
+ http://lesjoiesducode.fr/post/46420018667/quand-lequipe-support-se-tient-prete-pour-la-mise-en
+ quand l'équipe support se tient prête pour la mise en prod
+ http://ljdchost.com/iwCfev6TBohRP.gif
+
+
+ 45418246519
+ http://lesjoiesducode.fr/post/45418246519/quand-un-client-mecontent-se-pointe-au-bureau
+ quand un client mécontent se pointe au bureau
+ http://ljdchost.com/i1cbaP9vnF8d8.gif
+
+
+ 45408448927
+ http://lesjoiesducode.fr/post/45408448927/quand-le-nouveau-ne-comprend-rien-au-code-existant
+ quand le nouveau ne comprend rien au code existant
+ http://ljdchost.com/Ab1sBGN.gif
+
+
+ 45188616951
+ http://lesjoiesducode.fr/post/45188616951/quand-je-forme-le-stagiaire
+ quand je forme le stagiaire
+ http://i.imgur.com/JPJjSDO.gif
+
+
+ 43554518707
+ http://lesjoiesducode.fr/post/43554518707/quand-je-fais-une-demo-de-la-stabilite-du-programme-aux
+ quand je fais une demo de la stabilite du programme aux clients
+ http://i.imgur.com/c9RSVyh.gif
+
+
+ 37906597625
+ http://lesjoiesducode.fr/post/37906597625/quand-on-mannonce-que-je-vais-devoir-travailler-main
+ quand on m'annonce que je vais devoir travailler main dans la main avec les sysadmins
+ http://imgur.com/dguiD.gif
+
+
+ 36581607302
+ http://lesjoiesducode.fr/post/36581607302/quand-je-me-rends-compte-que-je-bloque-depuis-2-heures
+ quand je me rends compte que je bloque depuis 2 heures a cause d'un point virgule oublie
+ http://i.imgur.com/bBKKy.gif
+
+
+ 35336782255
+ http://lesjoiesducode.fr/post/35336782255/quand-le-client-essaie-de-cliquer-sur-les-maquettes
+ quand le client essaie de cliquer sur les maquettes
+ http://i.imgur.com/Fs2K4.gif
+
+
+ 35117256254
+ http://lesjoiesducode.fr/post/35117256254/quand-le-binome-me-demande-sil-doit-coder-a-ma-place
+ quand le binome me demande s'il doit coder a ma place
+ http://cdn.theatlanticwire.com/img/upload/2012/05/10/1268393910_george_clooney_at_the_oscars%20(1).gif
+
+
+ 34692087813
+ http://lesjoiesducode.fr/post/34692087813/quand-je-decouvre-un-force-close-juste-apres-ma
+ quand je decouvre un force close juste apres ma soumission sur le play store // android
+ http://i.imgur.com/QJu8Z.gif
+
+
diff --git a/dynastie/sites/blog.soutade.fr/css/ljdc.css b/dynastie/sites/blog.soutade.fr/css/ljdc.css
new file mode 100644
index 0000000..e4edc09
--- /dev/null
+++ b/dynastie/sites/blog.soutade.fr/css/ljdc.css
@@ -0,0 +1,32 @@
+.ljdc
+{
+ display:block;
+ margin:30px;
+}
+
+.ljdc a, .ljdc title
+{
+ font-family: 'Source Code Pro',Courier;
+ font-size: 1.3em;
+ font-weight:300;
+ line-height: 1.3em;
+ text-align: center;
+ margin: 5px;
+}
+
+.ljdc img
+{
+ display:block;
+ margin: 10px;
+ max-width: 400px;
+ max-height: 400px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.ljdc a:link, .ljdc a:visited, .ljdc a:hover
+{
+ color: rgba(0, 0, 0, 0.8);
+ text-decoration:none;
+}
+
diff --git a/dynastie/templates/search_blog.html b/dynastie/templates/search_blog.html
new file mode 100644
index 0000000..d1cc392
--- /dev/null
+++ b/dynastie/templates/search_blog.html
@@ -0,0 +1,24 @@
+{% extends "base.html" %}
+
+{% block content %}
+HomeCategoriesTags
+