Monday, November 08, 2010 at 12:03 AM.

on pageHeader (title=nil) {
	<<Build the top portion of an HTML page, <html><head><body>.
		<<Wed, Aug 14, 1996 at 7:55:39 AM by DW
			<<the 4.0 version would set link, text, background colors even if they weren't specified
			<<the default choices were non-standard
			<<in 4.1, we don't specify colors that aren't specified, allowing the client to make the choice
			<<this is the professional way to do it.
			<<changes implemented by Preson Holmes. Thanks Preston!
		<<Tue, Nov 12, 1996 at 7:39:43 PM by DW
			<<added support for #javaScript directive
		<<Tue, Nov 26, 1996 at 5:13:28 AM by DW
			<<added support for embedded menubar objects
		<<Sat, Nov 30, 1996 at 6:24:07 AM by DW
			<<add standard META tags, following the example of FrontPage and PageMill
			<<it's very good to be able to tell which software generated the HTML file
		<<Sun, Sep 28, 1997 at 4:14:54 PM by DW
			<<improve meta generator tag.  
			<<old version:
				<<<meta name="generator" content="Frontier 4.2 Mac">
			<<new version:
				<<<meta name="generator" content="Frontier 5.0a1 MacOS">
				<<we use the verbs Frontier.version and sys.os to generate the tag
				<<so it will work on WinNT and Win95 too
	local (pageTable = html.getPageTableAddress ());
	if title == nil {
		title = pageTable^.title};
	local (htmltext = "<html>\r<head>\r<title>" + title + "</title>\r");
	on add (s) {
		htmltext = htmltext + s};
	add ( (pageTable)); //5.0: PBS
	if defined (pageTable^.javaScript) and pageTable^.javaScript != "" {
		<<PBS 4/24/98 if javascript is empty, ignore it.
		add ("\r<script language='JavaScript'>\r<!--\r");
		if typeOf (pageTable^.javaScript) == addressType { //PBS 8/7/98: support for outlines
			add (string (pageTable^.javaScript^))}
		else {
			add (string (pageTable^.javaScript))}; //PBS12/30/98: support for #define-ing a JavaScript outline
		add ("\r//-->\r</script>\r")};
	add ("</head>\r");
	add ( (pageTable)); //5.0: PBS
	return (htmltext)}

This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.