;;; document.skb -- Document and author ;;; ;;; Copyright 2003, 2004 Manuel Serrano ;;; ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 2 of the License, or ;;; (at your option) any later version. ;;; ;;; This program is distributed in the hope that it will be useful, ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with this program; if not, write to the Free Software ;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, ;;; USA. ;*---------------------------------------------------------------------*/ ;* dummy-document-output ... */ ;*---------------------------------------------------------------------*/ (define dummy-document-output (lambda (n e) (let* ((a (markup-option n :author)) (t (markup-option n :title)) (b (markup-body n)) (ta (table (tr (map (lambda (n) (td :valign 'top :align 'center n)) (if (list? a) a (list a))))))) (skribe-eval (center (bold t)) e) (skribe-eval (center ta) e) (output b e)))) ;*---------------------------------------------------------------------*/ ;* Document */ ;*---------------------------------------------------------------------*/ (section :title "Building documents" :file #t ;*--- document --------------------------------------------------------*/ (subsection :title "Document" (p [The ,(tt "document") function defines a Skribe document.]) (doc-markup 'document '((:title "The title of the document.") (:html-title "The title of window of the HTML browser.") (:author "The authors of the document.") (:ending "An ending text.") (:keywords "A list of keywords which may be plain strings or markups. The keywords will not appear in the final document but only as meta-information (e.g., using the HTML `meta' tag) if the engine used supports it.") (:env "A counter environment.") (#!rest node... "The document nodes.")) :see-also '(author chapter toc)) (example-produce (example :legend "The document markup" (prgm :file "src/api2.skb")) (disp (processor :combinator (lambda (e1 e2) (let ((e (copy-engine 'document-engine e2))) (markup-writer 'document e :options '(:title :author :ending) :action dummy-document-output) e)) (include "src/api2.skb"))))) ;*---------------------------------------------------------------------*/ ;* Author ... */ ;*---------------------------------------------------------------------*/ (subsection :title "Author" (p [The ,(tt "author") function is used to specify the authors of a Skribe document.]) (doc-markup 'author '((:name "The name of the author.") (:title "His title.") (:affiliation "His affiliation.") (:email "His email.") (:url "His web page.") (:address "His address.") (:phone "His phone number.") (:photo "His photograph.") (:align "The author item alignment.")) :see-also '(mailto ref)) (example-produce (example :legend "The author markup" (prgm :file "src/api3.skb")) (disp (include "src/api3.skb")))))