*** html/tmhtml.scm	Sat Aug  7 12:51:10 2004
--- tmhtml.scm	Fri Oct  1 10:48:33 2004
***************
*** 16,21 ****
--- 16,22 ----
    (:use (convert tools tmconcat) (convert mathml tmmath)
  	(convert tools stm) (convert tools tmlength) (convert tools tmtable)
  	(convert tools sxml) (convert tools environment) (convert tools sxhtml)
+ 	(convert tools tmcolor)
  	(convert html htmlout))
    (:export texmacs->html tmhtml-root))
  
***************
*** 97,102 ****
--- 98,157 ----
  		 ".title-block { width: 100%; text-align: center } "
  		 ".title-block p { margin: 0px } "))
  
+ ;;;  This was stolen from htmltm.scm.  It's the wrong way to do it, and
+ ;;; should be erased once my tmcolor patches are in.
+ (define html-named-colors
+     '(("black" (0 0 0)) ("silver" (192 192 192)) ("gray" (128 128 128))
+       ("white" (255 255 255)) ("maroon" (128 0 0)) ("red" (255 0 0))
+       ("purple" (128 0 128)) ("fuchsia" (255 0 255)) ("green" (0 128 0))
+       ("lime" (0 255 0)) ("olive" (128 128 0)) ("yellow" (255 255 0))
+       ("navy" (0 0 128)) ("blue" (0 0 255)) ("teal" (0 128 128))
+       ("aqua" (0 0 255)) ("orange" (255 102 0))))
+ 
+ ;;;mine
+ (define call/cc call-with-current-continuation)
+ 
+ ;;; This should be erased once my tmcolor patches are in.
+ (define (text-color->htmlrgb text-color-name)
+   (string-append
+    "#"
+    (list->string
+     (map
+            ;;; instead of just number->string we need to
+            ;;; convert it as a *2 digit* hex number
+      (lambda (z)
+        (if (= 1 (string-length (number->string z 16)))
+ 	   (string-append "0" (number->string z 16))
+ 	   (number->string z 16)))
+      (call/cc
+       (lambda (cont)
+ 	(map (lambda (x)
+ 	       (if (equal? text-color-name (car x))
+ 		   (cont (cadr x))
+ 		   #f))
+ 	     html-named-colors)))))))
+ 
+ ;;; Leave this function!  This is the correct way to do it
+ (define (rgb->htmlrgb rgb-list)
+   (string-append
+    "#"
+    (apply string-append
+     (map
+            ;;; instead of just number->string we need to
+            ;;; convert it as a *2 digit* hex number
+      (lambda (z)
+        (if (= 1 (string-length (number->string z 16)))
+ 	   (string-append "0" (number->string z 16))
+ 	   (number->string z 16)))
+      rgb-list))))     
+ 
+ ;;; Leave this function!  This is the correct way to do it
+ (define (name->htmlrgb name)
+   (rgb->htmlrgb
+    (tmcolor->rgb255
+     (name->tmcolor name))))
+ 
+ 
  (define (tmhtml-file env l)
    ;; This handler is special:
    ;; Since !file is a special node used only at the top of trees
***************
*** 122,132 ****
  	  (set! body (tmhtml-tmdoc-post body))))
      `(h:html
        (h:head
         (h:title ,@(tmhtml env title))
         (h:meta (@ (name "generator")
  		  (content ,(string-append "TeXmacs " (texmacs-version)))))
         ,css)
!       (h:body ,@body))))
  
  (define (tmhtml-finalize-document top)
    ;; @top must be a node produced by tmhtml-file
--- 177,213 ----
  	  (set! body (tmhtml-tmdoc-post body))))
      `(h:html
        (h:head
+ ;;; this was for linking is a stylesheet file named "site.css".  Currently
+ ;;; useless, but could need to be reserected when we try to export
+ ;;; "floating" figures       
+ ;       (h:link (@ (rel "stylesheet") (type "text/css") (href "site.css")))
         (h:title ,@(tmhtml env title))
         (h:meta (@ (name "generator")
  		  (content ,(string-append "TeXmacs " (texmacs-version)))))
+ ;;; use this for debugging. uncomment, and stuff information here, then look
+ ;;; for it in the generated html file.       
+ ;       (h:meta (@ (name "rabbid bit-bucket")
+ ;		 (debugging message ,(get-env "bg-color"))))
         ,css)
!       (h:body
!        (@
! ;   the stuff not implemented in a dynamic way yet.
! ;	(background "ideas/redskull03.gif")
! ;	(alink "#000099")
! ;	(vlink "#990099")
! ;       (link "#000099")
! 
! ;; the stuff implemented in a dynamic way
! ;; uncomment the text-color->htmlrgb line and uncomment
! ;; the name->htmlrgb line if you don't have the "tmcolor patch"
! 	(bgcolor
! ;	 ,(name->htmlrgb (get-env "bg-color")))
! 	 ,(text-color->htmlrgb (get-env "bg-color")))
! 	(text
! ;	 ,(name->htmlrgb (get-env "color")))
! 	 ,(text-color->htmlrgb (get-env "color")))
! 	)
!        ,@body))))
  
  (define (tmhtml-finalize-document top)
    ;; @top must be a node produced by tmhtml-file
***************
*** 551,557 ****
  
  (define (tmhtml-table-contents env p)
    (define (cell x)
!     `(h:td ,@(tmhtml env x)))
    (define (row l)
      `(h:tr ,@(map cell l)))
    (map row (p 'rows 'content)))
--- 632,642 ----
  
  (define (tmhtml-table-contents env p)
    (define (cell x)
!     `(h:td
! ;;; uncomment this to have all table contents align to the top of the cell
! ;;; comment this out to have all table contents align to the middle of the cell
!       (@ (valign "top"))   ;this line
!       ,@(tmhtml env x)))
    (define (row l)
      `(h:tr ,@(map cell l)))
    (map row (p 'rows 'content)))
