Next Previous Contents

8. Funksjon for settinn-sgml-hode

Denne funksjonen lar brukere sette inn et tilpasset hode for dokumentfiler av type Linux DokumentasjonsProsjekt. Det kan starte automatisk når det åpnes en ny fil, eller at bruker spør om dette.

Denne funksjonen spør brukeren, ved mini-buffer, om noe nødvendig og unødvendig informasjon.

Først kommer tittel. Hvis ikke oppgitt, vil funksjonen umiddelbart kvittere ved å ikke legge inn noe. Så kommer dato, forfatter, hans epost-adresse og en hjemmeside (de siste to er valgfrie).

Så kommer spørsmål etter navn på oversetter. Om oversetter ikke finnes, tast Return og det kommer ikke flere spørsmål etter en hypotetisk oversetter. Om det finnes en, så blir du spurt om personens e-post og hjemmeside (valgfritt det også).

Denne funksjonen vil så skrive inn svaret i gjeldene buffer, med all informasjon som ble skrevet i oppstartsskjema, og med alle tagger som er nødvendig for sammendraget og første kapittel. Til slutt blir markøren plassert hvor sammendraget skal skrives.

(defun insert-sgml-header ()
  "Sett inn hodet for LinuxDoc-dokumentet"
  (interactive)
  (let (title author email home translator email-translator home-translator date 
              starting-point)
    (setq title (read-from-minibuffer "Tittel: "))
    (if (> (length title) 0)
        (progn 
          (setq date (read-from-minibuffer "Dato: ")
                author (read-from-minibuffer "Forfatter: ")
                email (read-from-minibuffer "Epost til forfatter: ")
                home (read-from-minibuffer "Forfatters hjemmeside: http://")
                translator (read-from-minibuffer "Oversetter: "))
          (insert "<!doctype linuxdoc system>\n<article>\n<title>")
          (insert title)
          (insert "</title>\n<author>\nForfatter: ") (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
  "Epost til oversetter: ")
                      home-translator (read-from-minibuffer
  "Hjemmesiden til oversetter: http://"))
                (insert "Oversetter: ") 
                (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)
          ))))
 

Next Previous Contents