SpipMode

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Voici l’ébauche d’une contribution qui fournira un mode d’édition de squelette SPIP pour Emacs.

Les sources de la contrib sont disponibles ici

Mode Emacs

Qu’est ce que cela apporte...

-  coloration syntaxique des parties SPIP du squelette,
-  fonctions d’ajout de boucles automatiquement, on a juste à entrer un nom, un type et des critères,
-  fonctions d’ajout de balises automatiquement, on a juste à entrer le nom et les filtres,
-  les types de boucles, critères, balises, filtres sont automatiquement découverts dans vos fichiers mes_fonctions et les sources de SPIP et complétés pour vous.
-  fonctions de créations de squelettes,
-  créations d’
-  fonctions d’extension d’une balise : on sélectionne une région, ce qui se trouve devant la balise dans la région devient le code optionnel avant, ce qui se trouve après devient le code optionnel après et on ajoute les filtres que l’utilisateur veut.

Des raccourcis clavier

  1. Tous les raccourcis sont précédés de C-c ;, c’est facile.
  2. Les raccourcis qui sont des versions spéciales d’un autre raccourci sont aussi précédés de C-u (Argument universel)

les raccourcis par défaut sont :
-  C-c ; n pour creer un squelette
-  C-c ; b pour insérer une boucle
-  C-u C-c ; b pour insérer une boucle avec balises optionnelles
-  C-c ; r pour insérer une boucle autour d’une région
-  C-u C-c ; r pour insérer une boucle avec balises optionnelles
-  C-c ; t pour insérer une balise
-  C-u C-c ; t pour insérer une balise étendue
-  C-c ; x pour étendre la première balise dans une sélection
-  C-u C-c ; x pour étendre la dernière balise dans une sélection
-  C-c ; i pour mettre un inclure
-  C-c ; k pour passer une région dans un inclure

On peut définir ses propres raccourcis et changer le préfixe grâce au groupe de customization spip-raccourcis :

M-x customize-group
spip-raccourcis

Il est conseillé de configurer le mode avec

M-x customize-group
spip

Certaines actions se trouvent aussi dans le menu spip (malheureusement, cela ne marche pas encore sous Xemacs).

Coloration Syntaxique

Ca fait moins mal au yeux de regarder ses squelettes avec des belles couleurs. Actuellement, les boucles, balises, filtres et chaînes localisées sont colorés pour être plus facilement visibles.

Les couleurs peuvent être configurées grâce au groupe de customization spip-font-lock-faces :

M-x customize-group
spip-font-lock-faces

Installation

  1. téléchargez tous les fichier et placez-les dans un sous repertoire spip-mode sur votre disque.
  2. Dans votre fichier .emacs, placez les lignes suivantes :
(add-to-list 'load-path "/usr/pandrews/local/programs//share/emacs/site-lisp/spip-mode") ;; mettre ici le bon chemin vers le repertoire d'installation.
(require 'spip-mode)
(add-to-list 'auto-mode-alist '(".[sj]?html?'" . spip-mode))
(add-hook 'spip-mode-hook 'turn-on-font-lock)

Coloration du php et css

Si vous avez aussi installé les modes mmm, php et css, vous pouvez faire l’intégration de ces modes au mode spip :

(require 'mmm-mode)
(setq mmm-global-mode 'maybe)
(add-to-list 'mmm-mode-ext-classes-alist '(spip-mode nil html-js))
(add-to-list 'mmm-mode-ext-classes-alist '(spip-mode nil embedded-css))
(mmm-add-group
  'fancy-html
  '(
    (html-php-tagged
     :submode php-mode
     :face mmm-code-submode-face
     :front "<[?]php"
     :back "[?]>")
    (html-css-attribute
     :submode css-mode
     :face mmm-declaration-submode-face
     :front "style=""
     :back """)))
(add-to-list 'mmm-mode-ext-classes-alist '(spip-mode nil fancy-html))

Personnalisation

On peut personnaliser certains paramètres grâce au groupe spip de customize :

M-x customize-group
spip

Fonctionnalités

Version 0.5 26/05/05 : (un peu en avance sur la date ?)

  • complété et branché les fonctions de découverte, spip-mode
    découvre les noms de balises, filtres etc. pour la complétion
    automatiquement si spip-racine-locale est customizé.
  • ajouté la fonction pour mettre un inclure (raccourcis : C-c ; i)
    la variable spip-racine-locale doit être réglée pour avoir la
    completion des fichiers
  • ajouté une fonction pour creer un squelette (C-c ; n)
  • ajouté une fonction pour envoyer une partie d’un squelette dans un inclure (C-c ; k)
    la variable spip-repertoire-squelettes-local doit être réglée pour que ca marche bien
  • divisé en fichiers :
    • spip-outils qui contient des ptts outils
    • spip-decouvre pour la découverte de plein de chose dans les fichiers spip
    • spip-hil pour la coloration
    • spip-mode reste le fichier principal
  • spip-regexp contient maintenant la plupart des expressions
    réguliére (pour la coloration entre autres). Calculé avec sregex
    (j’ai enfin capté le truc des backquote !!)
  • corrigé plein de truc dans les regexps, maintenant les boucles
    avec des «  » sont bien colorées (un keep oublié) et les critères
    et paramètres qui contiennent des balises (avec paramètres) sont
    maintenant bien colorés aussi.
  • nétoyé et ajouté de la doc.

Version 0.4 25/02/05 :
- des raccourcis customizable (ala ecb) pour les fonctions interactives. grâce au groupe spip-raccourcis
- fonction spip-etendre-balise pour rendre une balise étendue. Ajoute [] autour de la selection et ()
autour de la première balise dans la selection et ajoute les filtres spécifiés aprés la balise. Si on
passe un argument, cela etend la derniére balise dans la region.

Version 0.3 22/02/05 :

-  fonction spip-insert-balise pour insérer une balise. Demande le nom de la balise. Si on l’appel avec un paramètre, alors une balise étendue est insérée,
-  complétions dans le mini-buffer,
-  historique séparé dans le mini-buffer,
-  variable customize pour ajouter ses propres complétions,
-  début de menu.

Version 0.2 21/02/05 :
-  fonction spip-insert-boucle pour ajouter une boucle à l’endroit actuel. Demande le nom de la boucle, son type et une liste de critères. Si on l’appel avec un paramètre, alors les balises optionnelles (<b..> </b..> et <//b..>) sont ajoutées
-  fonction spip-insert-boucle-region pour ajouter une boucle autour de la sélection. Si on l’appel avec un paramètre, alors les balises optionnelles (<b..>, </b..> et <//b..>) sont ajoutées
-  correction de la coloration de

Version 0.1 :
La première version du mode ne fait que la coloration syntaxique des boucles, balises, inclure et chaînes localisées.

Liste des choses qui devraient marcher mais ne marchent pas

  1. indentation,
  2. menu dans xemacs,

Liste de choses à faire

  • restriction sur les completions des types de boucle
  • ajouter des fonctions pour ajouter du code facilement :
    • insertion balise code optionnel/alternatif
    • ajout d’un filtre
    • fermeture de la dernière boucle ouverte
  • complétions dans le buffer
    • des balises
    • des critères
    • des filtres
  • fonctions de localisation des squelettes :
    • voir la traduction d’une chaîne,
    • transformer une chaîne en chaîne localisée,
  • uploader sur le site
  • tester la page avec browse-url
  • documentation en français.

Propositions de fonctionnalités

Si vous avez des idées de choses qui devraient être proposées par ce mode, ajoutez les ici. On les déplacera ensuite dans la liste de choses à faire.

  • un double clic sur le début d’une boucle qui la
    marquerait en entier
  • traduire la documentation,
  • des meilleures couleurs.
  • idem pour vim ? ;)

Dernière modification de cette page le 15 mars 2007

Discussion

2 discussions

  • gpas2pseudos

    Moi ce qui m’interesserais, c’est de pouvoir rédiger (voire de créer) des articles depuis emacs. Je pense que ce doit être possible en se basant sur un mode sql, mais je ne trouve rien de tel sur la toile...

    Une autre piste serait d’écrire une espece de spip-dump qui genere tous les articles spip dans une arborescence (dans laquelle une rubrique = un répertoire). Et réciproquement.
    Ca, ca serait vraiment bien. Ca parait tellement bien que je suis surpris que ca n’existe pas. Bon, je vais chercher encore un peu.

    Si ca en interesse et que j’arrive à faire quelque chose dans ce sens, je préviendrais.

    Répondre à ce message

  • JE viens de découvrir ce mode emacs. Il est vraiment très très pratique, bravo !!

    Par contre j’ai l’impression que chez moi la mise en couleur ne marche pas, c.-à-d. il utilise les couleurs de HTML, mais pas la mise en couleur spécifique du mode SPIP, notamment les critères, etc ...

    Si j’ai un peu temps (hum) j’essaye de voir dans la liste des améliorations ce que je peux faire.

    Eric

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom