Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Next Previous Contents

7. Функция insert-sgml-header

Эта функция позволит пользователю вставить настраиваемый заголовок для документа Linux Documentation Project в файл. Она может быть вызвана автоматически при открытии нового файла, или может быть вызвана пользователем.

Эта функция запрашивает у пользователя, пользуясь mini-buffer, некоторую информацию, часть из которой необходима, а часть нет. not.

Сначала идет заголовок документа. Если ничего не дано, то функция сразу прекращает выполнение и ничего не вставляет. Затем идет дата, автор, его электронный адрес и домашняя страница (эти два последних пункта являются опциональными).

Затем идет запрос имени переводчика документа. Если его нет, то просто нажмите клавишу Return, и больше запросов не будет. А если переводчик есть, то вас запросят о его электронном адресе и домашней странице.

Затем эта функция выводит все в текущий буфер,включая конечно всю информацию, которую вы ввели и включая также необходимые таги для краткого содержания и первой главы. В конце он поместит курсор в том место, где будет набираться краткое содержание.


(defun insert-sgml-header ()

  "Inserts the header for a LinuxDoc document"

  (interactive)

  (let (title author email home translator email-translator home-translator date 

              starting-point)

    (setq title (read-from-minibuffer "Title: "))

    (if (> (length title) 0)

        (progn 

          (setq date (read-from-minibuffer "Date: ")

                author (read-from-minibuffer "Author: ")

                email (read-from-minibuffer "Author e-mail: ")

                home (read-from-minibuffer "Author home page: http://")

                translator (read-from-minibuffer "Translator: "))

          (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 "Translator e-mail: ")

                      home-translator (read-from-minibuffer "Translator home page: 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)

          ))))


Next Previous Contents