The HTML Library

How to Generate HTML | Functions in the Library | The HTML Data Definition

How to Generate HTML Using the Library

In order to generate a web page, you must do two things:

  1. Use the function make-html-page (defined in to create an html-page.

    make-html-page consumes three things: a string for the page title, a color for the page background, and a list of html-objects to display on the page. There are several kinds of html-object, and the data definition at the end of this document lists these.

    Example: If I want to create a web page containing my name and a link to the COMP 210 home page, I can write

         (define kathi-page
             "My Page" 
             (cons (make-html-paragraph (cons "Kathi" empty))
                   (cons (make-html-link ""
                                         "The COMP 210 Home Page")
    See the data definitions below for an explanations of the other make-html-... functions.

  2. Use the function html-to-file (also defined in the library) to write the page into a file.

    To see the html that the above example generates, set the library to and type the following:

         (html-to-file kathi-page "210test.html")
    This creates a file 210test.html in your working directory. You can view this file in your favorite browser.

Example: If I want a page containing a list of the names of the 210 instructors, I can write

(define instructor-page
    (cons (make-html-list
           (cons "Kathi"
                 (cons "John"
                        (cons "Geraldine"
                              (cons "Philippe" empty))))

Useful Functions in this Library

Each of the functions which creates a file simply returns true. Why? The return value is an arbitrary choice, since by having only possible return value, the value doesn't convey any information.

The Structs and Data Definitions


(define-struct html-list (items numbered?))
(define-struct html-paragraph (contents))

(define-struct html-link (URL text))

(define-struct html-page (title bgcolor contents))
;; An html-color is one of
;;      - "WHITE"
;;      - "BLUE"
;;      - "RED"
;;      - "YELLOW"
;;      - "GREEN"
;; An html-atom is one of
;;	- a string
;;	- a symbol
;;	- a number
;; A list of html-atoms (lo-html-atoms) is iether
;;	- empty, or
;;	- (cons a loha) 
;;		where a is an html-atom and
;;		      loha is a list of html atoms
;; An html-object is one of
;;	- an html-atom
;;	- (make-html-list items numbered?)
;;		where items is a lo-html-objects and 
;;		      numbered? is a boolean
;;	- (make-html-paragraph contents)
;;		where contents is a lo-html-objects
;;	- (make-html-link URL text)
;;		where URL is a string and
;;		      text is an html-atom
;; A list of html-objects (lo-html-objects) is either
;;	- empty, or
;;	- (cons obj loh)
;;		where obj is an html-object and
;;		      loh is a lo-html-objects
;; An html-page is a structure
;;	(make-html-page title bg contents)
;; where title is a string,
;;       bg is an html-color, and
;;	 contents is a lo-html-objects