diff options
Diffstat (limited to 'doc/dir/dir.skb')
-rw-r--r-- | doc/dir/dir.skb | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/doc/dir/dir.skb b/doc/dir/dir.skb new file mode 100644 index 0000000..8c6d377 --- /dev/null +++ b/doc/dir/dir.skb @@ -0,0 +1,113 @@ +;*=====================================================================*/ +;* serrano/prgm/project/skribe/doc/dir/dir.skb */ +;* ------------------------------------------------------------- */ +;* Author : Manuel Serrano */ +;* Creation : Wed Nov 28 10:37:39 2001 */ +;* Last change : Thu Jan 1 17:12:43 2004 (serrano) */ +;* Copyright : 2001-04 Manuel Serrano */ +;* ------------------------------------------------------------- */ +;* The Skribe directory */ +;*=====================================================================*/ + +;*---------------------------------------------------------------------*/ +;* The Skribe documentation style */ +;*---------------------------------------------------------------------*/ +(skribe-load "web-book.skr") +(skribe-load "skr/env.skr") +(skribe-load "skr/manual.skr") +(skribe-load "skr/api.skr") + +;*---------------------------------------------------------------------*/ +;* Html configuration */ +;*---------------------------------------------------------------------*/ +(let ((he (find-engine 'html))) + (engine-custom-set! he 'web-book-main-browsing-extra + (lambda (n e) + (table :width 100. :border 0 :cellspacing 0 :cellpadding 0 + (tr (td :align 'left :valign 'top (bold "Skribe: ")) + (td :align 'right :valign 'top + (ref :url *skribe-user-doc-url* + :text "User Manual"))))))) + +;*---------------------------------------------------------------------*/ +;* The global index */ +;*---------------------------------------------------------------------*/ +(define *sui-index* (make-index "sui")) + +;*---------------------------------------------------------------------*/ +;* index-sui ... */ +;*---------------------------------------------------------------------*/ +(define (index-sui sui dir) + (sui-filter sui + (lambda (s) + (and (pair? s) (eq? (car s) 'marks))) + (lambda (e) + (let ((f (memq :file e)) + (k (memq :mark e)) + (c (memq :class e))) + (when (and (pair? f) + (pair? k) + (pair? c) + (string=? (cadr c) "public-definition")) + (index :index *sui-index* + :url (format "~a/~a#~a" dir (cadr f) (cadr k)) + (cadr k))) + #f)))) + +;*---------------------------------------------------------------------*/ +;* Intern all the sui files */ +;*---------------------------------------------------------------------*/ +(define extensions '()) + +(let loop ((files (directory->list "html"))) + (when (pair? files) + (if (string=? (suffix (car files)) "sui") + (let* ((f (string-append "html/" (car files))) + (sui (load-sui f))) + (if (not (string=? (car files) "user.sui")) + (set! extensions (cons sui extensions))) + (index-sui sui (dirname (car files))))) + (loop (cdr files)))) +(let loop ((files (directory->list "."))) + (when (pair? files) + (if (string=? (suffix (car files)) "sui") + (let* ((f (car files)) + (sui (load-sui f))) + (if (not (string=? (car files) "user.sui")) + (set! extensions (cons sui extensions))) + (index-sui sui (dirname f)))) + (loop (cdr files)))) + +;*---------------------------------------------------------------------*/ +;* The document */ +;*---------------------------------------------------------------------*/ +(document :title "Skribe directory" + :author (list (author :name "Erick Gallesio" + :affiliation "Université de Nice - Sophia Antipolis" + :address '("930 route des Colles, BP 145" + "F-06903 Sophia Antipolis, Cedex" + "France") + :email (mailto "eg@essi.fr")) + (author :name "Manuel Serrano" + :affiliation "Inria Sophia-Antipolis" + :address `("2004 route des Lucioles - BP 93" + "F-06902 Sophia Antipolis, Cedex" + "France") + :url (ref :url *serrano-url*) + :email (mailto *serrano-mail*))) + + (linebreak 1) + +;;; extensions +(if (pair? extensions) + (section :title "Installed extensions" :number #f + (itemize (map (lambda (e) + (item :key (ref :url (sui-file e) :text (sui-title e)) + (let ((d (sui-key e :description))) + (if d (list ": " d) #f)))) + extensions)))) + +;;; global Index +(section :title "Global Markup Index" :number #f + (mark "global index") + (the-index :column 3 *sui-index*))) |