Page suivante Page pr�c�denteTable des mati�res

7. Une fonction insert-sgml-header

Cette fonction permet � l'utilisateur d'ins�rer une ent�te personnalis�e pour un document du Projet de Documentation Linux dans un fichier. Elle peut soit �tre appel�e automatiquement lorsque l'on ouvre un nouveau fichier SGML, soit �tre appel�e explicitement par l'utilisateur.

Cette fonction demande � l'utilisateur, � travers le mini-buffer, divers renseignements, certains n�cessaires, d'autres facultatifs.

Tout d'abord le titre. Si l'utilisateur n'entre aucun titre, la fonction retourne imm�diatement, et rien n'est ins�r�. Vient ensuite la date, l'auteur, son email et sa home page (ces deux derniers �tant facultatifs).

Il demande ensuite le nom du traducteur. S'il n'y a pas de traducteur pour ce document, il suffit de presser Entr�e, et les renseignements sur le traducteur ne seront pas demand�s. Dans le cas contraire, la fonction demande l'email et la home page du traducteur (aussi facultatifs).

Cette fonction affiche alors dans le buffer courant votre ent�te, comportant bien s�r tous les renseignements que vous avez cit�s mis en forme, mais aussi les balises n�cessaires au paragraphe d'introduction et au premier chapitre, puis place le curseur � l'endroit o� vous pourrez saisir le paragraphe d'introduction.

(defun insert-sgml-header ()
 "Ins�re l'ent�te d'un document LinuxDoc"
 (interactive)
 (let (titre auteur email home traducteur email-traducteur home-traducteur date
 point-debut)
 (setq titre (read-from-minibuffer "Titre : "))
 (if (> (length titre) 0)
 (progn
 (setq date (read-from-minibuffer "Date : ")
 auteur (read-from-minibuffer "Auteur : ")
 email (read-from-minibuffer "Email auteur : ")
 home (read-from-minibuffer "Home page auteur : http://")
 traducteur (read-from-minibuffer "Traducteur : "))
 (insert "<!doctype linuxdoc system>\n<article>\n<title>")
 (insert titre)
 (insert "</title>\n<author>\nAuteur : ") (insert auteur) (insert "<newline>\n")
 (if (> (length email) 0)
 (progn
 (insert "<htmlurl url=\"mailto:")
 (insert email) (insert "\" name=\"") (insert email)
 (insert "\"><newline>\n")))
 (if (> (length home) 0)
 (progn
 (insert "<htmlurl url=\"http://")
 (insert home) (insert "\" name=\"") (insert home)
 (insert "\">\n<newline>")))
 (if (> (length traducteur) 0)
 (progn
 (setq email-traducteur (read-from-minibuffer "Email traducteur : ")
 home-traducteur (read-from-minibuffer "Home page traducteur : http://"))
 (insert "Traducteur : ")
 (insert traducteur)
 (insert "<newline>\n")
 (if (> (length email-traducteur) 0)
 (progn
 (insert "<htmlurl url=\"mailto:")
 (insert email-traducteur) (insert "\" name=\"")
 (insert email-traducteur)
 (insert "\"><newline>\n")))
 (if (> (length home-traducteur) 0)
 (progn
 (insert "<htmlurl url=\"http://")
 (insert home-traducteur) (insert "\" name=\"")
 (insert home-traducteur)
 (insert "\"><newline>\n")))))
 (insert "</author>\n<date>\n")
 (insert date)
 (insert "\n</date>\n\n<abstract>\n")
 (setq point-debut (point))
 (insert "\n</abstract>\n<toc>\n\n<sect>\n<p>\n\n\n</sect>\n\n</article>\n")
 (goto-char point-debut)
 ))))


Page suivante Page pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:31