# -*- tcl -*-
# $Id: script,v 1.1 2000/10/03 10:37:42 tobotras Exp $

require TEItools.tcl
require Simple.tcl

TEItoolsSetup "html"

specification translate {
    {elements "HEXSTRING FLDINST PNTEXT META AUTHOR CREATION-DATE REVISION-DATE COMPANY SECTION YEAR MONTH DAY HOUR MINUTE"} {
	prefix		{}
	cdataFilter	null
    }
    {element TRANSDOC} {
	prefix		{<!doctype html public <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Frameset//EN'>
<!-- Generated from TEI Lite DTD by TEItools.
  See http://xtalk.price.ru/SGML/TEItools
-->
<html><head><title>Generated document</title><body>
}
	suffix		"\n</body></html>\n"
    }
    {element P} {
	prefix		"[beginPara]"
	suffix		"[endPara]"
    }
    {elements "TAB STRING FIELD FLDRSLT"} {
	prefix		{}
    }
    {element "TABLE"} {
	prefix		"\n<table>"
	suffix		"</table>\n"
    }
    {element "CELL"} {
	prefix		"\n<td>"
	suffix		"</td>\n"
    }
    {element "ROW"} {
	prefix		"<tr>\n"
	suffix		"</tr>\n"
    } 
    {element "ESCAPE"} {
	prefix		"&[query attval ENTVAL];"
    }
    {el} {
	prefix		"[openUnknown]"
	sdataFilter	textSdataFilter
	cdataFilter	identity
    }
}

# ATTENTION: real whitespaces here (e.g, TAB)
substitution textSdataFilter {
    {[tab]}	{	}
    {[ldquo]}	{``}
    {[rdquo]}	{''}
    {[ndash]}	{-}
    {[mdash]}	{--}
}

proc beginPara {} {
    set style [string toupper [query attval STYLENAME]]
    set closing {}
    switch -regexp $style {
	"HEADER" {
	    set opening "title"
	}
	"HEADING 0" {
	    set opening "\n\n<hr>\n<h1>"
	    set closing "</h1>\n<hr>\n\n"
	}
	"(HEADING 1)|( 1)|( 1)" {
	    set opening "\n\n<h1>"
	    set closing "</h1>\n"
	}
	"(HEADING 2)|( 2)|( 2)" {
	    set opening "\n\n<h2>"
	    set closing "</h2>\n"
	}
	"(HEADING 3)|( 3)|( 3)" {
	    set opening "\n\n<h3>"
	    set closing "</h3>\n"
	}
	"(HEADING 4)|( 4)|( 4)" {
	    set opening "\n\n<h4>"
	    set closing "</h4>\n"
	}
	"(NORMAL)|()|()" {
	    set opening "p"
	}
	"(BULLET)|(NUMERIC)" {
	    if { "$style" == "NUMERIC" } {
		set listType "<ol>"
	    } else {
		set listType "<ul>"
	    }
	    set opening $listType
	    withNode prev withattval STYLENAME $style {
		set opening "<li>"
	    } 
	    set closing "</li>\n</${listType}>\n"
	    withNode next withattval STYLENAME $style {
		set closing "</li>\n"
	    }
	}
	default {
	    Warning "unknown style $style"
	    set opening "p"
	}
    }
    if { "$closing" == "" } {
	setprop closing "</${opening}>\n"
	return "<${opening}>"
    } else {
	setprop closing $closing
	return $opening
    }
}

proc endPara {} {
    return [query propval closing]
}

