Essential HTML and CSS
- Book slides: http://www.brics.dk/ixwt/html.pdf
- Suggested Reading: Chapter 1
Hypertext
Hypertext is a relatively old idea. Though the term was coined by Ted Nelson, many of the ideas can be traced back to Vannevar Bush and his memex idea in “As We May Think”. Hypertext is not just xml or html or the web in general. Nelson’s (often derided) Project Xanadu offers an alternate view and some more bells and whistles like transclusion.
In “As We May Think”, Bush says:
Wholly new forms of encyclopedias will appear, ready made with a mesh of associative trails running through them
Of HTML, Nelson says:
HTML is precisely what we were trying to PREVENT— ever-breaking links, links going outward only, quotes you can’t follow to their origins, no version management, no rights management.
Yet, HTML is probably the most popular type of markup around these days. The HTML5 spec from the w3c provides one ‘standard’ and the HTML Living Standard offers a (very similar) but slightly competing standard. The Web Components Specifications offer some insight as to the future of HTML.
Markup in the Wild
Beyond HTML, there are tons of other uses of markup.
- ansible uses YAML to drive the configuration of remote systems.
- markdown is a non-html “document oriented” language that is now quite pervasive (see github).
- hugo drives this site and is an example of a translation from non-html markup language (markdown) to html.
- xmp sidecar files are just one example of data-oriented xml languages.
Unicode
Though we won’t discuss it much after today unicode (and encoding data in general) is an extremely important topic. Take a look at some of the code points and how they relate to the ASCII you may know already. Also consult Ned Batchelder’s description of unicode.
Introduction to XML
- Book Slides
- Suggested Reading: Chapter 2
- IPython Notebook Examples: (raw) (read-only)
XML Resources
Namespaces
In XML, namespaces allow us to combine two xml languages without worrying about whether or not tag names will collides. More generally, namespaces in programming languages allow us to do this with functions, objects, etc. Life without namespaces can be hard. Just consult the Common Lisp Hyperspec or the PHP manual.
Public XML
Trees In Other Markup Lanuages
The tree structure we see in XML is not unique to it. For example, docutils contains trees and transfoms.