Humus numericus

Aller au contenu | Aller au menu | Aller à la recherche

R, Spip et autres

mercredi 5 avril 2006

Textile mode

Youpi, youpla, je viens de créer mon premier major mode pour Emacs. C'est un mode visant à faciliter l'écriture de document suivant la syntaxe de balisage Textile.

Pour l'instant il ne fait pas grand-chose, c'est à dire seulement de la coloration syntaxique, et il est en version vraiment alpha, pas plus testée que ça. N'hésitez pas à me faire remonter tout bug ou commentaire.

La dernière version du script peut être téléchargée là :

http://svn.nozav.org/scripts/elisp/textile-mode/textile-mode.el

Pour plus d'informations sur Textile, vous pouvez consulter :

samedi 7 janvier 2006

erc2html

Je viens de pondre un tout petit script en Ruby qui me permet de transformer un log de discussion IRC enregistré sous ERC (Emacs Relay Chat) en fichier HTML pour publication. Le script supprime les sauts de ligne superflus, supprime les messages serveur et colorise deux trois bricoles. C'est loin d'être parfait, mais si ça peut être utile à quelqu'un...

require "cgi"

str = IO.read("/home/julien/lautre_20060107.log.txt")

titre = "Titre de la page"
charset = "UTF-8"

head = <<EOL
<html>
<head>
<title>#{titre}</title>
<meta http-equiv="Content-Type" content="text/html; charset=#{charset}" />
<style type="text/css">
 * {font-family: monospace;}
 .nick {font-weight: bold; color: #A00;}
 .ref {font-style: italic; color: #090;}
 .timestamp {color: #AAA;}
 .me {color: #00B;}
</style>
</head>
<body>
<h1>#{titre}</h1>
<p>
EOL

foot = <<EOL
</p>
</body>
</html>
EOL

str.gsub!(/^ERC>.*$/n, "")
str.gsub!(/
\s+/n, " ")
str.gsub!(/[\d\d:\d\d]/) { |s| "
"+s+"
"}
str.gsub!(/\s+$/n, "")
str.gsub!(/^\*\*\* .*$/n, "")
5.times {str.gsub!(/
\s*
/n, "
")}

str = CGI::escapeHTML(str)
str.gsub!(/^&lt;.*?&gt;/n) {|s| '<span class="nick">'+s+'</span>'}
str.gsub!(/(<\/span>) (\w+\s?:)/n) {|s| $1+' <span class="ref">'+$2+'</span>'}
str.gsub!(/[\d\d:\d\d]/) { |s| '<span class="timestamp">'+s+'</span>'}
str.gsub!(/^\* .*$/n) {|s| '<span class="me">'+s+'</span>'}
str.gsub!(/
/, "<br />
")

str = head + str
str = str + foot

puts str

jeudi 21 octobre 2004

Utiliser Mozilla Firefox pour ouvrir les liens sous Emacs/Gnus

La commande utilisée sous Emacs (et donc sous Gnus) pour ouvrir et afficher le contenu d'url contenues dans des documents ou des mails est à définir sous la forme d'une fonction à rattacher à la fonction browse-url-browser-function. Il existe un cetain nombre de fonctions par défaut, mais aucune pour Mozilla Firefox (en tous cas pour ma version d'Emacs, la 21.3.1). Grâce à EmacsWiki et à Google Groups, j'ai pu bricoler une fonction qui permet d'ouvrir le lien dans un nouveau tab si une instance de Firefox tourne déjà, et de lancer le navigateur sinon.

A priori ça fonctionne pour Firefox 0.9 et au-delà. Voici le code à rajouter dans votre .emacs :

(defun browse-url-firefox-new-tab (url &optional new-window)
  "Open URL in a new tab in Firefox."
  (interactive (browse-url-interactive-arg "URL: "))
  (let ((cmd (shell-command-to-string
              (concat "mozilla-firefox -a firefox -remote 'openURL("
                        url ",new-tab)' > /dev/null"))))
    (unless (string= "" cmd)
      (message "Starting Firefox...")
      (start-process (concat "firefox " url) nil "/bin/sh" "-c" 
               (concat "mozilla-firefox " url "|| true"))
      (message "Starting Firefox...done"))))
(setq browse-url-browser-function 'browse-url-firefox-new-tab)

Lire des fils RSS avec Gnus

Gnus (le lecteur de news mail et autres sous Emacs) sait tout faire, ça n'est pas nouveau. Il sait aussi lire des fils d'informations au format XML-RSS, mais la marche à suivre indiquée dans la documentation ne fonctionne pas chez moi. Celle-ci suggère de créer un nouveau groupe à l'aide des touches G R, mais chez moi ça débouche sur un message d'erreur :

No such newsgroup: nnrss:xxxxxxxxxx

Une autre méthode qui semble fonctionner est de créer le groupe dans un premier temps à l'aide de G m, de choisir un nom et indiquer nnrss comme 'From method'. Ensuite, à la première ouverture du nouveau groupe, Gnus vous demandera l'url du fichier RSS, et le tour est joué !