====== Resources for Developing Your Website ======
===== Contents =====
* [[#Introduction]]
* [[#Editing Text]]
* [[#Help with HTML]]
* [[#Cascading Stylesheets (CSS)]]
* [[#Javascript]]
* [[#Other Resources]]
* [[#Books]]
===== Introduction =====
So, you've followed the instructions. You've run "mkhomepg". You've created your first html document, and you've got as far as displaying "Hello, World" in a browser for all to see. So far so good. But what next? This brief tutorial aims to help you take that next step, so you can create a web page that looks good, performs well, and may even accomplish whatever goal you have for it.
==== The Golden Rule ====
Unless your aim is simply (and exclusively) to learn how to code a web page, the most important consideration going into your project is content. In general, the purpose of any web page is to provide information or interaction of some sort. It could be to share photos with family and friends. It could be to exchange ideas with like minded individuals about some interest or hobby. It could be a blog for your fevered rantings.\\ The nature of the content is naturally up to you - that's the beauty of it. And as it is up to you, a discussion of content beyond this simple admonishment is beyond the scope of this tutorial. But it is important to remember that without interesting or useful content, there simply is no point.
==== Strategy ====
I won't pretend that I can teach you all you need to know about making a web page. But as someone who has been working with web pages for more than five years, I do know my way around. My strategy in this tutorial is to bring up topics of interest and then direct you to online resources of high quality and free availability,based on open standards.\\ This strategy is designed to be in accord with the goals and ethos of SDF. So while you won't find much here about //what to do// - I hope you will benefit from my suggestions on //where to look//.
===== Editing Text =====
At their most basic level, web pages are text files. Thus, you need a way of editing the text that will make up your web pages. If you wish to build your web page from within your SDF shell account, numerous text editors are available. To see a list, enter the following commands at your shell prompt:
$ faq
g basics
t 9
As you can see, there are quite a few to choose from. Some are simple, and some are complex and quite amazingly powerful. I find "pico" convenient and easy to use. Many on SDF like "nano". And for those who are willing to learn them there are much more powerful editors like "vi", "vim" and "emacs" which offer an unmatched degree of customization. What is important is to choose an editor that you are comfortable working with, as you will be spending considerable time using it.\\ Some folks, myself included, may find it easier to do their editing in their desktop environment. If you are an ARPA lifetime member (one-time fee of $36), this presents no obstacle as ftp (and sftp) is available for transfering your finished work to your html folder on SDF.
===== Help With HTML =====
Hypertext Markup Language (HTML) is the primary language of the world wide web. In its simplest terms, it provides for structuring the text of your web page, through the use of various "tags" which "mark" your text with structural attributes.\\ For example, text which falls between the opening tag
and the closing tag
is interpreted by a web browser as being a level one heading.
A full description of HTML is well beyond the scope of a basic tutorial, yet it is important that you have access to complete information. Fortunately, what you need is indeed freely available on the web. If you choose to ignore everything else in this tutorial, I would like you nontheless to heed this advice. The website of the [[http://www.w3c.org|World Wide Web Consortium]] (who set the standards and conventions for the World Wide Web) is your friend. Visit it. Get to [[http://www.w3.org/Consortium/new-to-w3c|know]] it. Learn to love it.
Some specific HTML related pages on the W3C site which may be helpful to you are listed below:
* [[http://www.w3.org/MarkUp/Guide/Overview.html|Getting Started with HTML]]
* [[http://www.w3.org/MarkUp/Guide/Advanced.html|More Advanced Features]]
* [[http://validator.w3.org/|HTML Validator]]
* [[http://www.w3.org/People/Raggett/tidy/|HTML Tidy]]
Of these, perhaps the most important is the Validator. By using the validator to check your work, you can ensure that your web page is standards compliant - built to work in a wide variety of browsers on any number of platforms. You'll find it also catches your typos (in your HTML, not your content).
Other HTML resources you may find useful:
* [[http://www.w3schools.com/|W3 Schools]]
* [[http://www.ncdesign.org/|Network Communication Design]]
===== Cascading Stylesheets (CSS) =====
Although HTML provides rudimentary formating capabilities through various tags and attributes, the preferred method of setting properties such as margins, text size, colors and other such goodies is through the use of stylesheets. Not only do stylesheets provide more power and flexibility than is available through pure HTML, they also make it much easier to maintain or adjust the appearance of your web pages. What is more, the use of style sheets can actually save bandwidth, thus decreasing the size of and increasing the responsiveness of you site.This is generally considered a [[http://www.catb.org/~esr/jargon/html/G/Good-Thing.html|Good Thing]]. \\ The W3C again provides a wealth of materials. I find the following links useful:
* [[http://www.w3.org/Style/Examples/011/firstcss|Starting With HTML + CSS]]
* [[http://www.w3.org/MarkUp/Guide/Style|Adding a touch of style]]
* [[http://jigsaw.w3.org/css-validator/|CSSValidator]]
===== Javascript =====
At its core, HTML is simply a markup language, a derivative of SGML. Even with the help of Cascading Stylesheets, it is not really a fully functional as a layout design tool. Rather it aims at page description - identifying your document heirarchy, describing lists and tables, and so on. For more elaborate construction work, it is often useful to employ a scripting language to expand your design capabilities. Several are available, but perhaps the most popular is the client-side running javascript.
* [[http://www.mozilla.org/js/|Javascript information at Mozilla.org]]
* [[http://www.w3schools.com/js/default.asp|Javascript resources at W3 Schools]]
* [[http://www.javascriptkit.com/javatutors/primer1.shtml|Javascript Primer at javascriptkit.com]]
* [[http://www.irt.org/links/JavaScript_Resources/index.html|irt.org: JavaScript Resources]]
===== Other Resources =====
HTML, CSS, Javascript - these are all well established parts of your "general purpose" web design toolkit. There are lots of more specialized tools available as well. I will just list a few here that you can explore in case you are interested.
* [[http://us3.php.net/FAQ.php|PHP FAQ at php.net]] - Server-side Scripting Language
* [[http://www.mysql.com/|MySQL]] - Database Software
* [[http://www.libpng.org/pub/png/|Information on PNG]]
* [[http://wordpress.org/|WordPress blogging software]]
* [[http://www.blackpearlcomputing.com/bpc/Bandwidth_stuff/default.html|The Bandwidth Conservation Society]]
===== Books =====
For those of you who, like me, find it beneficial to work with books in addition to online resources, I offer the following suggestions. You may purchase these books directly from [[http://www.oreilly.com/|O'Reilly]], or from a discount bookstore like [[http://www.bookpool.com|BookPool]], or you can locate a used copy from [[http://www.abebooks.com|ABE Books]] or [[http://www.alibris.com|Alibris]].
=== Friendly Introduction ===
* Head First HTML with CSS & XHTML Elisabeth Freeman & Eric Freeman, O'Reilly & Associates
=== References ===
* HTML: The Definitive Guide Chuck Musciano & Bill Kennedy, O'Reilly & Associates
* Cascading Style Sheets: The Definitive Guide Eric A. Meyer, O'Reilly & Associates
* Javascript: The Definitive Guide David Flanagan, O'Reilly & Associates
* Web Design in a Nutshell: A Desktop Quick Reference Jennifer Niederst Robbins, O'Reilly & Associates