27/11/2018: Test de Pico CMS

pico home
Toujours à la recherche de "flat-file CMS", en bon Français un manager de contenu de site internet, avec back office mais sans base de données, j'avais testé dernièrement Grav et de Zwii. Ce n'est qu'un parmi les 50+ CMS recensés des plus connus aux plus plus obscurs, depuis CMS made simple, en passant par Pico, batflat, SimpleCMS, Blozilla, ou Automad.

A propos de Pico CMS

Un des noms les plus souvent rencontrés en cherchant des "flat-file", Pico est selon ses auteurs "stupidement simple et hyper-rapide". Nous allons donc voir ici comme installer et gérer ce type de CMS, ses points positifs et négatifs. Toujours d'après la page d'accueil, ce CMS utilise le formatage Markdown (Pour simplifier une mise en page complexe), et le templating Twig, l'un des plus répandus. Bien sûr, ce CMS est open source. Pas de licence à payer et une communauté grandissante (3000 contributeurs) permettant de l'améliorer et de trouver des extensions et solutions à ses problèmes. Ce CMS a été créé par Gilbert Pellegrom en 2013 d'après la page Github.

Pourquoi un CMS "Flat file" ? Pour faire simple: Un CMS ("Content Manager System") est une architecture web qui permet de créer et gérer du contenu grâce à une interface, le back-office. Cela évite de rédiger du code. Ce système convient à toutes les personnes qui ne connaissent rien au code et qui souhaitent gérer leur contenu comme dans un éditeur de texte, avec des options claires et simples.

Tandis qu'un CMS "flat-file" se passe de base de données, qui sont utilisés par les CMS courants comme Wordpress (ce blog), Joomla, Drupal, Concrete5, Prestashop et bien d'autres. On place les fichiers de fonctionnement sur un serveur qui s'assemblent et s'affichent sur le navigateur en html tandis que toutes les données, paramètres et variables, textes et autres, sont stockés à part sur un serveur. L'architecture "standard" pour un telle base de donnée est MySql.

[caption id="attachment_12619" align="alignnone" width="800"]Pico CMS template de base Le Template de base de Pico CMS. Le site peut être personnalisé à partir de là ou utiliser un nouveau template.[/caption]

Quels sont les avantages d'un "flat file"? Proposant eux aussi un back-office, ce type de CMS possède quelques avantages et inconvénients qu'il est intéressant de noter pour faire son choix: -Avantages:

  1. Vitesse*: Comme il n'y a pas d’accès à une base de données (dont le serveur physique peut être à l'autre bout de la planète), le navigateur trouve tout localement, donc c'est effectivement plus rapide.
  2. Sécurité: En effet n'ayant pas de base de données, cette dernière ne peut être ni piratée, ou effacée, ou bien endommagée par accident.
  3. Simple: Moins de complexité à gérer pour le développeur, moins de chances de plantage
-Inconvénients:
  1. Options: Plus simple à son corollaire. Les options sont beaucoup plus limités sur un tel type de site.
  2. Echelle: Un blog pour une grande audience n'est pas adapté à ce format. Mais un simple site vitrine l'est.
*En matière de vitesse il y a encore mieux: Le "static site generator" (comme Jekyll) qui prend toutes données issues de bases de données (ex. Pour chaque ressource, chaque plugin) et construit des fichiers statiques, bien plus rapides à charger. Pour un "flat-file" il y a encore un peu d'assemblage.

Le Test de Pico:

Installation

En principe un "flat-file" est archi-simple à mettre en place. Il suffit d'avoir l’accès à un serveur via ftp et de glisser-déposer le petit fichier téléchargé (214 Ko, pas mo !). Autant dire que l'upload est très rapide. [caption id="attachment_12617" align="alignnone" width="739"]microsite CMS Pico Tout mouillé, 66 kilos zippé, 214 ko dézippé, et pourtant l'essentiel est là. Du jamais vu, en ce qui me concerne, pour un CMS, surtout comparé à un Drupal ou Magento et ses 60 mo et plus...[/caption]

D'emblée après l'installation, une page blanche et un message: Cannot find 'vendor/autoload.php'. Run `composer install`. qui n'augurait rien de bon pour la suite. Après un check du fichier index.php et ftp il apparait effectivement qu'il n'y a pas de fichier autoload ni de dossier vendor. Après un check sur les forums il apparait que la version officielle a ce problème si la version par défaut est utilisée.

Avec un hébergement partagé avec des sous-domaines, il n'est pas souhaitable, ni possible de mettre le CMS sous "root" comme demandé. Après être revenu sur le site Pico, il apparait que l'installation recommandée, par défaut se fait en ligne de commande via SSH après avoir créé le site en local sous windows pour compléter la structure.

Reste la seconde solution du ftp. Sur le site, après les instructions d'installation via ftp ils est possibke de télécharger le "bon bundle", fait pour ce cas de figure. Et cette release V2.02 est de 2,7 mo compressée, ce qui est déjà beaucoup plus normal pour un CMS prêt à l'usage !!! Après donc avoir envoyé plus d'un millier de fichiers via ftp, et un refresh, la page qui s'affiche est déjà plus encourageante.
Congratulations, you have successfully installed [Pico][] %version%.
%meta.description% <!-- replaced by the above Description header -->
Page blanche, texte noir par défaut, c'est assez rudimentaire en l'état !. Il n'y a même pas de page de paramétrage avec quelques champs. On est renvoyé sur une page sous "content-sample/index.md". Plus en aval, la page explicative par défaut explique qu'il n'y a pas de back-office* à proprement parler, et que pour créér une nouvelle page il suffit de la créer dans le ftp. Voici l'exemple de page.md qui sert de template:
<table style="width: 100%; max-width: 40em;">
    <thead>
        <tr>
            <th style="width: 50%;">Physical Location</th>
            <th style="width: 50%;">URL</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>content/index.md</td>
            <td><a href="%base_url%">/</a></td>
        </tr>
        <tr>
            <td>content/sub.md</td>
            <td><del>?sub</del> (not accessible, see below)</td>
        </tr>
        <tr>
            <td>content/sub/index.md</td>
            <td><a href="%base_url%?sub">?sub</a> (same as above)</td>
        </tr>
        <tr>
            <td>content/sub/page.md</td>
            <td><a href="%base_url%?sub/page">?sub/page</a></td>
        </tr>
        <tr>
            <td>content/a/very/long/url.md</td>
            <td>
              <a href="%base_url%?a/very/long/url">?a/very/long/url</a>
              (doesn't exist)
            </td>
        </tr>
    </tbody>
</table>

Ce que j'ai testé très vite. Et qui fonctionne. Mais quel avantage par rapport à site avec back-office pour le grand public ? Après un bon refresh, et un déménagement en sous-niveau (http://laataia.com/ARCHIV/PICO/) ici, la maquette est déjà plus présentable. On peut également "griller les étapes" en créant rapidement un site "bankable" avec la méthode toujours facile du template. Toutefois il faut bien préciser un point qui contriduir la définition du CMS annoncée au début:

PICO ne possède donc aucun back-office (en anglais "administration backend"). Quel intêrét donc pour les utilisateurs potentiels ? Réduit, car il faut pour créér des contenus générer un fichier .pd depuis le ftp ou en lignes de commandes, ce qui n'est pas user friendly pour quelqu'un qui souhaite adminstrer son site pour son activité sans se "prendre la tête" avec du code ou des des logiciels. Si je souhaite par exemple modifier la sous-page défaut http://laataia.com/ARCHIV/PICO/?sub , il faut posséder dans l'idéal FTP ou un éditeur de code de type Notepad ++ (qu'il faut savoir paramétrer) ou un dinosaure Wysiwig tel que Dreamweaver, qui sait gérer l'accés et l'édition en direct de fichiers. On ne conseillera pas word et ftp. Beaucoup d'exigences donc pour un néophyte.



Au final, on ne poussera pas plus la découverte de Pico CMS car d'une part le terme de "CMS" est un peu usurpé dans le sens où l'on s'attend trouver un back office, le "management" du contenu étant sommaire et limité aux webmasters eux-mêmes. A ce titre un template boostrap personnalisé fait tout autant l'affaire et est nettement moins lourd (une page index, un fichier CSS, un javascript et quelques images)...

Pico CMS est relativement expérimental et ne possède qu'un poids limité dans la sphère CMS. S'il évolue avec un vrai back office il sera toujours temps de revenir le tester sur ce blog et je pourrait le ranger dans les options clients possibles selons les projets demandés.

A noter: Il existait un autre "Pico CMS", qui lui possédait un véritable back-office, simple, rudimentaire mais suffisant pour la plupart des petits utilisateurs. Il aurait été renommé depuis "Brio" (introuvable). Ce Pico CMS était édité et maintenu par Sinsarina (http://www.sisarina.com/).
La prochaine fois, c'est sitecake qui sera testé, lequel propose un simple drag-and-drop et une barre d'outils flottante.
Avez-vous testé, ou utilisez-vous PICO ?
Quelles en sont vos impressions ?
Laissez un message et faites part de votre expérience avec Pico...