~bohwaz/blog/

Avec de vrais morceaux de 2.0 !

nanoKubbe 0.1 beta

Vous avez envie de créer un petit site mais à chaque fois vous regardez les CMS que vous connaissez et vous vous dites "ouh la la" ? Vous avez envie de pas vous prendre le chou maintenant mais de pouvoir faire évoluer le code vous-même plus tard ? Voilà nanoKubbe, le mini-CMS-wiki-truc.

nanoKubbe c'est un principe simple : on a des pages et tout le reste tourne autour. Vous pouvez donc créer/éditer/renommer/déplacer/supprimer ces pages. C'est la base de nanoKubbe. Vous pouvez les mettre dans des répertoires aussi, c'est automatique. Par exemple si vous créez la page Recettes/Tourte, ça va créer le répertoire Recettes et dedans la page Tourte.

La fonctionnalité intéressante de nanoKubbe sont les métadonnées, en effet vous pouvez associer des méta-données à chaque page (celles-ci sont stockées dans un fichier .ini adjacent au fichier .html du contenu de la page), ces méta-données peuvent représenter n'importe quoi. Par défaut dans nanoKubbe il y a trois méta-données : le titre de la page, le style spécifique, et une case à cocher pour que la page ne soit lisible que lorque vous êtes connectés. Vous pouvez facilement rajouter autant de méta-données que vous désirez. Et on en vient à l'autre point intéressant, les templates et plugins.

En effet dans nanoKubbe par défaut une page appelle le template page.tpl, et il gère tout l'affichage et les fonctionnalités liées au contenu. C'est lui qui gère que faire des métadonnées associées à la page, pas le code PHP, le template. Par exemple pour la métadonnée "private" qui indique si la page est privée, le template fait simplement un if pour savoir s'il doit afficher le contenu. Mais on ne peux pas tout faire dans un template smarty. Ainsi vous pouvez aussi rajouter des plugins de templates (fonctions, modifieurs, etc.) qui eux seront des fonctions PHP.

Ah oui et tout cela est éditable en ligne en direct.

Niveau performance, par défaut les pages sont mises en cache pour une période de 24h en utilisant le système de cache de Template_Lite.

Pour l'édition des pages, l'idée étant encore de rester le plus possible proche d'une utilisation "code" mais simplifiée, on utilise directement du xhtml, avec des petits boutons d'aide à l'édition. On utilise garbage2xhtml et Blockformat (dont j'ai déjà parlé il y a quelques temps ici) qui permettent de ne pas trop laisser passer les erreurs de code mais surtout qui évitent de gérer soi-même les paragraphes et retours de ligne. Ainsi une ligne vide en dehors d'un tag de type bloc créera un nouveau paragraphe, et un retour à la ligne simple créera un <br />.

nanoKubbe essaye donc d'être très proche du code PHP, et d'un modèle de gestion "à la main", mais en direct, en ligne et de manière simplifiée. Il sépare également les couches présentation (CSS) / contenu (pages) / contenu accessoire (métadonnées) / markup (templates).

Pour moi c'est l'outil d'édition web quasiment idéal, après des années à réinventer la roue et tenter de nouvelles choses, je suis persuadé qu'il est le plus efficace car très proche des outils utilisés pour le créer, il représente plus une aide à l'édition de code qu'un véritable CMS et c'est là tout son intérêt. Il ne manque à mon sens plus que la possibilité d'utiliser son éditeur de texte préféré à la place des textarea du navigateur...

Enfin voilà tout ça pour dire que la version 0.1 beta de nanoKubbe est disponible sur le SVN de KD2.org. Oui enfin après tant de temps :) Il faut dire que le billet que j'avais préparé pour la sortie de la 0.1 finale a commencé d'être rédigé en décembre 2006 et que depuis nanoKubbe a connu deux refontes de son code et de sa logique.

Pour récupérer le code un simple

svn checkout http://svn.kd2.org/svn/misc/nanokubbe/trunk/

Et voilà. Pour installer il vous faut le droit d'écriture sur le répertoire racine de nanoKubbe, et tous les sous-répertoires de cache et datas. Ensuite allez avec votre brouteur web sur install.php, ça vous demande de choisir un login/pass et voilà vous pouvez tester. Il n'y a pas encore de doc mais je ne sais pas si c'est d'une utilité tellement il faut l'utiliser pour le comprendre. Cependant si vous avez des questions posez-les dans les commentaires de ce billet je me ferais un plaisir d'y répondre :) Oh, au fait c'est pour PHP >= 5

Ah et un exemple ? Ben http://bohwaz.net/wiki/Encodage par exemple pour voir ce que ça donne visuellement (notez le "Connexion" en haut à droite ;) ). Et pour le niveau édition voici un screenshot montrant la barre d'outils présente sur les pages quand on est connecté, l'édition d'une page et la gestion des documents : nanokubbe.jpg.

Écrire un commentaire
(facultatif)
(facultatif)
(obligatoire)
           _                _   _            
  __ _  __| |_ __ ___   ___| |_| |_ _ __ ___ 
 / _` |/ _` | '_ ` _ \ / _ \ __| __| '__/ _ \
| (_| | (_| | | | | | |  __/ |_| |_| | |  __/
 \__,_|\__,_|_| |_| |_|\___|\__|\__|_|  \___|
                                             
(obligatoire)

Les adresses internet seront converties automatiquement.
Tags autorisés : <blockquote> <cite> <pre> <code> <var> <strong> <em> <del> <ins> <kbd> <samp> <abbr>

jipi

Bonjour,

l'adresse : "disponible sur le SVN de KD2.org" comporte une erreur (trubk à la place de trunk)

Et comment récupérer les sources si l'on a pas svn, ce qui être le cas de toutes les personnes qui ne font pas de developpement.

cordialement

julian

Bonjour,

j'adore nanoKubbe, je l'ai installé sur mon site, mais je n'arrive pas à accéder aux pages créées.

J'ai une erreur 404 en cliquant sur le lien de la page nouvellement créée qui se trouve sur la page d'accueil du wiki.

La page nouvellement crée apparait bien dans le répertoire datas/documents/ sous la forme d'un fichier html mais c'est tout.

Voila, sinon tres bon boulot, j'aime bien ce que tu fais.

A tres bientot j'espere

Julian

BohwaZ

Vérifie que tu as bien un fichier .htaccess à la racine de ton nanokubbe, qui contienne quelque chose comme ça :

ErrorDocument 404 /wiki/index.php

(Moi mon nanokubbe est dans /wiki/ sur bohwaz.net)