indexing
	description: "HTML generation. This class may be used as ancestor by classes needing its facilities"
	status: "See notice at end of class"
	date: "$Date$"
	revision: "$Revision$"

class interface
	HTML_GENERATOR

feature -- Access

	stdout: STDOUT
			-- Shared standard output (stdout).
			-- (from SHARED_STDOUT)
	
feature -- Transformation

	put_basic (s: STRING)
			-- Write s to medium.
		require
			string_not_void: s /= void
	
feature -- Miscellaneous

	put_bold (text: STRING)
			-- Put text in bold face.
		require
			text_not_void: text /= void

	put_glossary_definition
			-- Put glossary definition tag.

	put_glossary_end
			-- End glossary list.

	put_glossary_start
			-- Start glossary list.

	put_glossary_term (text: STRING)
			-- Put text as glossary term.
		require
			text_not_void: text /= void

	put_header1 (title: STRING)
			-- Put title as level 1 header.
		require
			title_not_void: title /= void

	put_header2 (title: STRING)
			-- Put title as level 2 header.
		require
			title_not_void: title /= void

	put_header3 (title: STRING)
			-- Put title as level 3 header.
		require
			title_not_void: title /= void

	put_header4 (title: STRING)
			-- Put title as level 4 header.
		require
			title_not_void: title /= void

	put_header5 (title: STRING)
			-- Put title as level 5 header.
		require
			title_not_void: title /= void

	put_header6 (title: STRING)
			-- Put title as level 6 header.
		require
			title_not_void: title /= void

	put_horizontal_rule
			-- Put a horizontal rule.

	put_italic (text: STRING)
			-- Put text in italic.
		require
			text_not_void: text /= void

	put_line_break
			-- Put line break.

	put_link (url, anchor: STRING)
			-- Attach text anchor to url
		require
			anchor_not_void: anchor /= void
			url_not_void: url /= void

	put_list_item_end
			-- Put list item end tag.

	put_list_item_start
			-- Put list item start tag.

	put_ordered_list_end
			-- End ordered list.

	put_ordered_list_start
			-- Start ordered list.

	put_paragraph_end
			-- End paragraph

	put_paragraph_start
			-- Start paragraph.

	put_preformatted (text: STRING)
			-- Put preformatted text text.
		require
			text_not_void: text /= void

	put_unordered_list_end
			-- End unordered list.

	put_unordered_list_start
			-- Start unordered list.
	
feature -- Constants

	Bold_end: STRING is "</B>"
			-- Bold face end tag.
			-- (from HTML_CONSTANTS)

	Bold_start: STRING is "<B>"
			-- Bold face start tag.
			-- (from HTML_CONSTANTS)

	Glossary_definition: STRING is "<DD>"
			-- Glossary list definition.
			-- (from HTML_CONSTANTS)

	Glossary_end: STRING is "</DL>"
			-- Glossary list end tag.
			-- (from HTML_CONSTANTS)

	Glossary_start: STRING is "<DL>"
			-- Glossary list start tag.
			-- (from HTML_CONSTANTS)

	Glossary_term: STRING is "<DT>"
			-- Glossary list term.
			-- (from HTML_CONSTANTS)

	H1_end: STRING is "</H1>"
			-- Header level 1 end tag.
			-- (from HTML_CONSTANTS)

	H1_start: STRING is "<H1>"
			-- Header level 1 start tag.
			-- (from HTML_CONSTANTS)

	H2_end: STRING is "</H2>"
			-- Header level 2 end tag.
			-- (from HTML_CONSTANTS)

	H2_start: STRING is "<H2>"
			-- Header level 2 start tag.
			-- (from HTML_CONSTANTS)

	H3_end: STRING is "</H3>"
			-- Header level 3 end tag.
			-- (from HTML_CONSTANTS)

	H3_start: STRING is "<H3>"
			-- Header level 3 start tag.
			-- (from HTML_CONSTANTS)

	H4_end: STRING is "</H4>"
			-- Header level 4 end tag.
			-- (from HTML_CONSTANTS)

	H4_start: STRING is "<H4>"
			-- Header level 4 start tag.
			-- (from HTML_CONSTANTS)

	H5_end: STRING is "</H5>"
			-- Header level 5 end tag.
			-- (from HTML_CONSTANTS)

	H5_start: STRING is "<H5>"
			-- Header level 5 start tag.
			-- (from HTML_CONSTANTS)

	H6_end: STRING is "</H6>"
			-- Header level 6 end tag.
			-- (from HTML_CONSTANTS)

	H6_start: STRING is "<H6>"
			-- Header level 6 start tag.
			-- (from HTML_CONSTANTS)

	Horizontal_rule: STRING is "<HR>"
			-- Horizontal rule tag.
			-- (from HTML_CONSTANTS)

	Italic_end: STRING is "</I>"
			-- Italic end tag.
			-- (from HTML_CONSTANTS)

	Italic_start: STRING is "<I>"
			-- Italic start tag.
			-- (from HTML_CONSTANTS)

	Line_break: STRING is "<BR>"
			-- Line break tag.
			-- (from HTML_CONSTANTS)

	List_item_end: STRING is "</LI>"
			-- List item end tag.
			-- (from HTML_CONSTANTS)

	List_item_start: STRING is "<LI>"
			-- List item start tag.
			-- (from HTML_CONSTANTS)

	Ordered_list_end: STRING is "</OL>"
			-- Ordered list end tag.
			-- (from HTML_CONSTANTS)

	Ordered_list_start: STRING is "<OL>"
			-- Ordered list start tag.
			-- (from HTML_CONSTANTS)

	Paragraph_end: STRING is "</P>"
			-- Paragraph end tag.
			-- (from HTML_CONSTANTS)

	Paragraph_start: STRING is "<P>"
			-- Paragraph start tag.
			-- (from HTML_CONSTANTS)

	Preformatted_end: STRING is "</PRE>"
			-- Preformatted text end tag.
			-- (from HTML_CONSTANTS)

	Preformatted_start: STRING is "<PRE>"
			-- Preformatted text start tag.
			-- (from HTML_CONSTANTS)

	Unordered_list_end: STRING is "</UL>"
			-- Unordered list end tag.
			-- (from HTML_CONSTANTS)

	Unordered_list_start: STRING is "<UL>"
			-- Unordered list start tag.
			-- (from HTML_CONSTANTS)
	
invariant

		-- from ANY
	reflexive_equality: standard_is_equal (Current)
	reflexive_conformance: conforms_to (Current)

end -- class HTML_GENERATOR