insert-sgml-header
Ta funkcija uporabniku omogoči dodajanje zaglavja za dokument dokumentacijskega projekta za Linux (Linux documentation Project) v datoteko. Izvede se lahko samodejno, ko nekdo odpre novo datoteko, ali pa izrecno na uporabnikovo željo.
Ta funkcija v mini-bufferju (spodnja vrstica v Emacsu) vpraša uporabnika za nekaj podatkov, izmed katerih so nekateri obvezni, nekateri pa ne.
Najprej se prikaže vprašanje o naslovu dokumenta. Če ne podaste ničesar, se funkcija takoj konča, ne da bi se dodalo kakšno zaglavje. Sledijo vprašanja o datumu, avtorju, njegovem elektronskem naslovu in domači strani (zadnja dva podatka sta neobvezna).
Sledi zahteva po imenu prevajalca. Če ga ni, samo pritisnite Enter in ne bo več nobenih nadaljnjih vprašanj o morebitnem prevajalcu. Če pa prevajalec je, boste vprašani še po njegovem elektronskem naslovu in domači strani (oboje je prav tako neobvezno).
Funkcija nato zapiše zahteve na mesto, kjer urejate pravkar odprto novo datoteko (buffer v terminologiji Emacsa), seveda se dodajo vsi malo prej vtipkani podatki in pa še vse oznake za označevanje povzetka (angl. abstract) in prvega poglavja. Končno se kazalec postavi na mesto, kjer je treba napisati povzetek.
(defun insert-sgml-header () "Doda zaglavje v dokument LinuxDoc" (interactive) (let (title author email home translator email-translator home-translator date starting-point) (setq title (read-from-minibuffer "Naslov: ")) (if (> (length title) 0) (progn (setq date (read-from-minibuffer "Datum: ") author (read-from-minibuffer "Avtor: ") email (read-from-minibuffer "Avtorjev elektronski naslov: ") home (read-from-minibuffer "Avtorjeva domaca stran: http://") translator (read-from-minibuffer "Prevajalec: ")) (insert "<!doctype linuxdoc system>\n<article>\n<title>") (insert title) (insert "</title>\n<author>\nAuthor: ") (insert author) (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 translator) 0) (progn (setq email-translator (read-from-minibuffer "Prevajalcev el. naslov: ") home-translator (read-from-minibuffer "Prevajalceva domaca stran: http://")) (insert "Translator : ") (insert translator) (insert "<newline>\n") (if (> (length email-translator) 0) (progn (insert "<htmlurl url=\"mailto:") (insert email-translator) (insert "\" name=\"") (insert email-translator) (insert "\"><newline>\n"))) (if (> (length home-translator) 0) (progn (insert "<htmlurl url=\"http://") (insert home-translator) (insert "\" name=\"") (insert home-translator) (insert "\"><newline>\n"))))) (insert "</author>\n<date>\n") (insert date) (insert "\n</date>\n\n<abstract>\n") (setq point-beginning (point)) (insert "\n</abstract>\n<toc>\n\n<sect>\n<p>\n\n\n</sect>\n\n</article>\n") (goto-char point-beginning) ))))