summary refs log tree commit diff
path: root/skribe/doc/dir
diff options
context:
space:
mode:
Diffstat (limited to 'skribe/doc/dir')
-rw-r--r--skribe/doc/dir/dir.skb113
1 files changed, 113 insertions, 0 deletions
diff --git a/skribe/doc/dir/dir.skb b/skribe/doc/dir/dir.skb
new file mode 100644
index 0000000..8c6d377
--- /dev/null
+++ b/skribe/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*)))