This was originally written by Eamonn Sullivan (Technical Director of desktop hardware and software at PC Week Labs) to help his staff to write documents for their web server. It's designed for someone who wants to put a page on the web but couldn't care less about most of the technical details and doesn't want to read a book.
I have copied it in entirety and made minor revisions to suit local conditions. (R. Lancashire)
The original document can be found here.
If all that you want to do is convert an existing column or story into a Web document, there's only a few things that you need to do.
That's it, you're finished. This quick-and-dirty list glosses over numerous complications and technicalities, but at least your document will be read and displayed correctly by most browsers.
However, if you want to do anything at all fancy, such as links to other documents, graphics, bullet or number lists, or whatever, then read on. This document isn't long and you'll be able to do a lot more when you're finished working through it. Let me know if there are any confusing sections so I can improve it.
The Hypertext Markup Language (or HTML) is the language used to create the documents for the World Wide Web. Although most browsers will display any document that is written in plain text, there are advantages that you get by writing documents using HTML. When HTML documents are read by applications specifically designed for the Web (usually called browsers or Web browsers) they can include formatting, graphics, and even links to other documents.
As a markup language, HTML is not so much concerned about the appearance of the documents, but about the structure of a document. Rich Text Format (RTF), on the other hand, is an example of a formatting language. The difference between them is that, in HTML, you would use commands to mark the headings, normal paragraphs, lists (and whether they are numbered or not), and even things like addresses. In RTF, you would use commands (usually the word processing program does this for you) to indicate the typeface, font size, and style of the text in a document.
HTML is a relatively simple implementation of Standard Generalized Markup Language(SGML). HTML is simple enough to just type in directly without using some sort of HTML editor. HTML editors are useful, especially if you have massive quantities of documents to write, but they are not necessary to get started.
In general, HTML commands begin with a < and end with a >. The commands are almost never case sensitive and are either "container" or "separator" commands (although there are numerous exceptions to both of those generalizations). By a container, I mean that there is usually a beginning command and an ending command. The commands would thus be applied to the text in-between the beginning and ending commands. An example of a container command is the title command, which surrounds the text that is designated as the document's title with <title> and </title>. An example of a separator command is the command used to indicate a line break (<br>).
White space, meaning anything that is not a printable character, is generally ignored in HTML. Leaving a blank line in your document will generally not create a blank line when the document is displayed in a browser.
Finally, not every element common to typical documents is included in HTML. You will occasionally have problems converting some documents. For example, the version of HTML in common use today doesn't support equations and support for tables is relatively new and not available in all browsers.
There is a sort of paradigm shift involved with using HTML, especially for people used to having a lot of control over the look of a page (such as publishers). With the Web, the user or reader has a lot more control over the look and feel of documents than most publishers are used to.
The designers of HTML were concerned with conveying the structure of documents in a simple, portable way. The advantage of this approach is that users on most any kind of system, from a Macintosh to a simple, dumb terminal can view documents formatted with HTML with relatively little loss of information.
Some publishers attempt to get around formatting limitations in HTML by using a lot of graphics or using HTML commands in such a way as to make their documents look "just right" in one particular browser (such as Netscape or Mosaic). Often, the result is that those same documents look terrible or are even inaccessible in another browser.
My philosophy (take it for what it's worth) is that it is far better to use general HTML commands. Your documents will be more accessible to more people and you won't have to worry as much about how your documents will look on browsers that you don't have access to.
Every HTML document should start by declaring itself as such. You do that with the <html> command at the very top of the document. The very last text in a document should be the ending command, </html>.
The top part of the document should also have a section for heading information which is surrounded by the <head> and </head> commands. There are several items of information that you can put in the header, but almost all of it is totally ignored by most browsers out there. One piece of information you must always have in the heading is the title. The title (as we mentioned earlier) is surrounded by the <title> and </title> commands.
The title of a document is not normally displayed as part of the page, but is often displayed in some sort of special section in most browsers (Netscape puts the title in a Document Title box just under it's menu, for example). However, the title is also used by most browsers when saving the user's "hotlist," so it should be both descriptive and short enough to fit comfortably on one line.
Finally, the "body" of the document should also be marked off with the <body> and </body> commands. This is the part of the document that is normally displayed as the page in most browsers.
This is what a typical document would look like so far:
<html> <head> <title>This is my title</title> </head> <body> </body> </html>
(Remember that white space doesn't matter, so this stuff could all be on one line if you wanted. It makes no difference.)
HTML is easiest to use with documents with a fairly rigid structure -- ones with a definite outline of headings, subheadings, sub-sub-headings, and lists. It is not required, but it is good practice to write your document so that the heading "levels" used reflect the organization of your document. For example, the first heading should be a "level 1" heading (I'll show you how to do this soon), subheadings should be "level 2," and so on.
Most browsers recognize at least four heading levels. There is support in HTML for more than that, but what I mean by "recognize" is that the browser gives up to four levels of headings a distinct style. After the fourth level, it gets difficult to tell the heading levels apart. If you get much beyond that, you should consider breaking up your document into multiple pages.
The heading commands look like <hX> and </hX>, where X is the heading level. In most documents on the Web, the first heading is a duplicate of the document's title. Our typical document would look like this after we added the first heading:
<html> <head> <title>This is my title</title> </head> <body> <h1>This is my title</h1> </body> </html>
Normal paragraphs are presently separated with the <p> command. This is one of those exceptional commands that is not yet a container, although it can be. The next proposed version of HTML makes this a container, so that paragraphs begin with a <p> and end with a </p>. However, very few documents actually use the <p> command this way, so it's up to you if you want to use it.
Our sample document would look like this after we added a paragraph or two and a subheading:
<html> <head> <title>This is my title</title> </head> <body> <h1>This is my title</h1> This is a sample paragraph. The majority of most documents contain this type of construct. <p> <h2>This is a subheading</h2> The quick brown fox jumped over the slow lazy dogs. The quick brown fox jumped over the slow lazy dogs.<p> The quick brown fox jumped over the slow lazy dogs. The quick brown fox jumped over the slow lazy dogs.<p> </body> </html>
I put the paragraph marks after each paragraph in this example, but they can just as easily go in front of each paragraph. The <p> is just a separator.
If you find that this creates too much white space in your viewer, then you might
prefer to use <br> instead.
This gives a line break without the additional empty line.
There are three kinds of lists in HTML: ordered, unordered, and a special kind called a definition list. The ordered lists are numbered. Unordered ones typically just use bullets to mark each item.
In ordered lists the browsers take care of inserting the actual numbers. This behavior is convenient for authors because if you insert or delete items in a sorted list, you don't have to worry about renumbering everything. An ordered list begins with <ol> and ends with </ol>.
Unordered lists typically use bullets to mark off each item in the list, but this is up to the browser (a DOS browser may use asterixes or dashes, for example). An unordered list begins with <ul> and ends with </ul>.
In both kinds of lists, the individual items are designated with a <li> command. This is another one of those commands that isn't typically used as a container (i.e. it doesn't have a corresponding </li> command), but it can have one if you want. The new proposed version of HTML uses it as a container, but since virtually all web documents don't use it that way, you're pretty much assured that it will always be recognized as a separator (the same goes with <p>, by the way).
Although it is not strictly legal HTML, you can nest lists to get an outline effect. All current browsers that appear to recognize nested lists and it is likely to be added to the standard.
Here's our sample document with a few lists thrown in:
<html> <head> <title>This is my title</title> </head> <body> <h1>This is my title</h1> This is a sample paragraph. The majority of most documents contain this type of construct. <p> <h2>This is a subheading</h2> The quick brown fox jumped over the slow lazy dogs. The quick brown fox jumped over the slow lazy dogs.<p> Here's an ordered list:<p> <ol> <li> first item. <li> second item. <li> notice that <p> commands are not necessary to separate list items. </ol> Here's an unordered list:<p> <ul> <li> an item. <li> another item. <li> here's a nested list <ul> <li> a nested item <li> another nested item </ul> <li> the last item </ul> The quick brown fox jumped over the slow lazy dogs. The quick brown fox jumped over the slow lazy dogs.<p> </body> </html>
This is what the list above would look like when rendered with your browser:
Here's an ordered list:
Here's an unordered list:
A definition list is a very flexible type of list that is more useful than its name implies. Definition lists are used in the bookmark file generated by Netscape, for example and other examples can be found in the pages at PC Week. It's useful for lists where a bit of explanatory text should accompany each item. Each item in the list has two parts, a term (indicated with the <dt> command) and a definition (which uses the <dd> command). The list itself is started with a <dl> command and closed with a </dl> command.
Here's a sample definition list:
<dl> <dt> First Term <dd> First term's definition. <dt> Second term (or title, or whatever) <dd> Text that explains or expands on the second term. </dl>
And This is what it would look like in your browser:
Links are what make Web documents unique. Unfortunately, some of what is required to create a link is slightly complicated. The most complex part of it is the URL that points to the resource you're linking to.
A URL (or Universal Resource Locator) is the address of a document or resource. It usually takes this form:
protocol:// machine.name[:port]/directory/document.name
The protocol is the Internet protocol used to reach the document or resource. On the Web, it is typically "http", but it can be any of numerous other things (such as ftp, gopher, telnet, etc). The machine.name is just what you think it is: the name of the host where the document resides (such as wwwchem.uwimona.edu.jm). The ":port" portion of the address is optional and is only necessary when a resource is accessible through a non-standard TCP port number. The standard port number for HTTP is 80, for example, which is why we have to put in the port number for our web server (1104) since we don't use the standard port. This goes for other protocols, as well. If you want to reach a gopher at something other than port 70 or telnet at something other than port 23, you have to put in a port number.
The directory and document.name components of the URL are self explanatory. But note that while the machine name is case-insensitive, directory and document names are generally CASE SENSITIVE.
The easiest way to get the URL of a document is to find it using Netscape or Lynx and then copy the URL into your HTML document. In Netscape, you would copy the text in the Document URL field near the top of Netscape's window.
The HTML command for putting a link into a document takes this form:
<a href="URL">text of link</a>
You put the URL in the quotes following the "href=" and put the text of the link (the part that users will click or select to activate the link) after the > and before the </a>.
So, here's out document with a few links:
<html> <head> <title>This is my title</title> </head> <body> <h1>This is my title</h1> This is a sample paragraph. The majority of most documents contain this type of construct. Here's a link embedded in the document right <a href="http://www.pcweek.ziff.com/~pcweek/whats_new.html">here </a>.<p> <h2>This is a subheading</h2> The quick brown fox <a href="http://www.pcweek.ziff.com/~pcweek/jumped.html>jumped</a> over the slow lazy dogs. The quick brown fox jumped over the slow lazy dogs.<p> ...and so on...
One of the great things about the web is the ability to create and share documents across platforms. However, you should restrain yourself somewhat. I've noticed in the log files for the Chemistry server than many people turn off in-line images to increase performance and that those who don't often abort the download process of large graphics and video files. Even with fast network access to the Internet, some users find documents loaded down with images to be annoying.
However, a dash of colorful images can be nice. Images are also often necessary to make a point that can't be made using text only.
To add an image to your document, you need to convert it first into GIF or JPEG format. There are a number of tools for doing that, so I won't get into that here, but if you can't find something or need help, see me.
To make things easier on yourself, put the images that you want to show in your document into the same directory as your document. It is possible to display a GIF image that is stored almost anywhere (even somewhere on the Internet), but I won't get into those kinds of complexities right now.
The HTML command for inserting an image at the current position takes the following form:
<IMG SRC="name_of_image.gif">
That's all there is to inserting a GIF file into your document. Notice that the location is given relative to the current document. The location does not have to be a full URL (but it can be if you want). This same trick can be used for normal links (not just for images).
There are also some optional argument to the IMG command that you may want to use occasionally.
You can "suggest" to the browser that the image be aligned in a particular way with the surrounding text using the "align=" directive. The choices are "top", "middle", or "bottom", which indicate where the base of the image should be in relation to the base line of the surrounding text.
Here's a couple of examples:
<img align="top" src="./image.gif"> Some Text. <img align="middle" src"./image.gif"> Some Text. <img align="bottom" src"./image.gif"> Some Text.
Here's how it would look in your browser:
Some Text.
Some Text.
Some Text.
The other useful option is to suggest a text-only alternative for browsers that don't support in-line images. The "alt" directive is used like this:
<img alt="o" src="./image.gif"> Some Text. <img alt="o" src"./image.gif"> Some Text. <img alt="o" src"./image.gif"> Some Text.
For users on a text-only browser like W3-mode of Emacs or Lynx, these items would appear as just "o" instead of something like [IMAGE]. Some web servers make very good use of this directive to display icons for the image-oriented and simple word links (like "[Home] [Next]") for text-only browsers.
This document should get you started. To learn more, remember to use the built-in "view source" option built-in to most browsers to view the HTML commands that make up some of your favorite pages on the web. I'm not advocating that you plagarise documents, but study the formatting commands that are used and try to use the same tricks in your own documents.
Also, check out the following pages for more advanced documents.
Author:
Eamonn D SullivanLast modified: May-95, rjl