Select a template (or design one). My first web pages had a lot of similarity. They looked like they had all been designed by the same person. But pretty soon it became evident that there is remarkable similarity in the structure of websites that appear very, very different. So, my templates are all created with elements chosen from the following list and always in precisely this order (with the exception that "text" and "datatables" may be used as many times as desired and in any sequence).
- doctype --
- windowtitle -- this is the title appearing on the top frame of the window.
- metatags --
- javalink --
- javaprep --
- metatag2 --
- body -- begins the display, including the most important color specifications.
- javamenuprep -- code preparatory to
- parentlogo -- logo of a parent organization (if any).
- logo -- logo for this website.
- topbuttons -- navigational buttons, perhaps the same as "bottombuttons".
- jumptobottom -- a button allowing the user to jump to the bottom of a big page.
- title -- the main title on the page.
- menu2 -- small menu options across the top of the page.
- subtitle -- a subtitle on the page.
- pagestructure1 -- a structural element, often for a simple table organization of content.
- leftmenu -- a major navigational feature for most websites.
- pagestructure2 -- a structural element, often for a simple table organization of content.
- datatable -- any data table, HTM2000 does a lot of work here very nicely.
- text -- any text element, HTM2000 handles text nicely.
- contentsmenu -- this is for links at the bottom of the page to subsidiary pages.
- pagestructure3 -- a structural element, often for a simple table organization of content.
- footer --
- hrulegraphic -- you might like a horizontal rule below the content.
- bottombuttons -- navigational buttons, perhaps the same as "topbuttons".
- jumptotop -- a button allowing the user to jump to the to0p of a big page.
- copyright -- who owns the intellectual rights to the content.
- path -- the path where the page will be placed on your local version of the website.
- filename -- the name of the page (I try to keep names below 8 letters).
I suggest you begin by taking an existing uncomplicated page and develop your own page from it. Don't take one from the web to start. Instead, take one from Adrian Smith's HTM2000, an APL workspace that can be freely downloaded. As you get good at that, then try some relatively simple pages from the web. So far, I've found that each of the pages I've found on the web and from which I wanted to learn could be replicated in my template structure. And that's how I've developed my templates.
The word "template" needs definition. For most web designers, it means they have written the html and Java code necessary to create a page and left the central "body" element empty. Then they cut and paste new material into the "body" element for each new page. That makes it easy to create lots of pages, but it does nothing to provide for a revised site structure.
I recommend for an APL programmer, a template begins as a function which builds an html page. As you experiment with it, you'll see how you want to generalize various pieces of it. That's how I began and the 29 elements above became the generalized scheme which accomodates all of my 6500 web pages.
An additional power derived from APL should also be noted. Each of these elements can be expressed as an executable APL expression. The test is simple. If an element is a literal vector with the "execute" character as its first element, then it is assumed to be an executable expression. This means I can write an APL function to do anything that I can't describe in an easier manner. Executable APL expressions are most often used to identify a database source and parameters.