Web authoring and site management

My Introduction to HTML also includes links to further information and style guides.
My Beyond HTML page contains information on style sheets, XML, JavaScript, the Semantic Web, etc.
My Language page includes links related to typography and fonts, including my page on the STIX fonts and my variant MASTIC (with small caps and a curvy lower-case italic v); and my page on the display of symbols in HTML.

Tools for HTML syntax & link checking

Here are a few of the many tools available.


Cascading Style Sheets are used to specify the appearance of Web pages. Current version is CSS 2.

CSS support across browsers is not entirely consistent (e.g., Mozilla CSS Reference and CSS Extensions).

CSS does not provide variables or macros. Various preprocessors have been created for this purpose, for example, Jon Gilkison's variables-in-css-via-php/ and Pete Boere's CSS Crush. (This selection is not based on my personal experience.)

See the interactive demo of advanced CSS features by Paul Irish, Jonathan Neal et al.

There are a great many tools available that are designed to make the use of CSS easier, such as Less and Sass. Frameworks based on Sass include Compass, Susy (designed to work with Compass), Bourbon, etc. I have no experience with any of these.

display:run-in was moved (2011 Jan) from CSS2 to CSS3 (ref, ref). It is in CSS3. As of 2014 Oct 31 it is labelled as experimental in Firefox (ref).

MathML and MathJax

One way to create MathML, for inclusion in a Web page, is to use OpenOffice/LibreOffice. Use the formula editor in Writer, then export the document as XHTML. Extract the <math …> … </math> content from the XHTML file and paste it into the source for your Web page. It may be desirable to replace some special characters by the equivalent HTML entities (e.g., &sum; or &alpha;). It may also be desirable to use MathJax by adding the following code to the page:

<style type="text/css">
/* don't use MathJax_Main because it doesn't have many accented characters */
  body { font-family: STIXGeneral, Mastic, serif }

<script type="text/javascript" async
Note that the old cdn.mathjax.org was shut down as of 2017 Apr 30. The MathJax JavaScript library can also be downloaded and invoked locally. You may not really want to specify my Mastic font.

The use of MathJax improves the math rendering and also gives access to a TeX-like syntax for specifying math, which is especially useful for small bits where MathML is overkill. For example, \‍(w_i(\mathbf{x}), i=1,2,...n\) gives the in-line math \(w_i(\mathbf{x}), i=1,2,...n\), while \‍[w_i(\mathbf{x}), i=1,2,...n .\] (with square brackets rather than parentheses) gives ‘displayed’ math: \[w_i(\mathbf{x}), i=1,2,...n .\] One can also use $…$ instead of \(…\) and $$…$$ instead of \[…\]. To use the single $ for math (which may conflict with its use as a currency indicator elsewhere on the page) it is necessary to first enable it by adding something like this to the document head (ref):

<script type="text/x-mathjax-config">
  tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}


OpenID is a mechanism for logging in to Web sites using ‘identities’ that have already been established on other sites. For example, suppose that site A provides OpenID's and site B accepts OpenID's. If someone has an account on site A, and has done whatever is required to establish an OpenID there (e.g., set up a profile), then they will be able to authenticate using that profile when logging in to site B, rather than having to create a new identity by registering at site B. It's quite easy to set up a site to accept OpenID's. Many organizations provide OpenID's. It's apparently not terribly difficult to become an OpenID provider, although I'm not clear about how trust is established. This description of OpenID dates to 2011, before OpenID Connect [1, 2].

Organizations devoted to on-line identities include the Open Identity Exchange (OIX) and NIST’s Trusted Identities Group.

Log analysis and server monitoring

Programmes for server-log analysis that are packaged in Debian include:

There are also real-time systems for analyzing site usage. An open-source alternative to Google Analytics is Piwik. It uses PHP and MySQL. It requires that some special JavaScript code be added to every page.


LAMP stands for Linux Apache Mysql PHP/Python/Perl.

Note that, under Debian, apache2 has two main flavours:

For MySQL, install mysql-client, mysql-server and php5-mysql.




Content-management systems

Comparisons: 2009, 2001

HTML editors

This is a list of tools that seem to be (or used to be) popular, but I use Emacs myself. See also Wikipedia’s Comparison of HTML editors.


Old stuff

This list was compiled 1998–2000. Obsolete links have been updated or commented out; no new links have been added.

Valid HTML 4.01 Strict | WCAG Level AAA
R. Funnell
Last modified: 2019-04-16 07:44:38