How this site is made
1. Shared parts with Server Side Includes
The top of this page, from <!DOCTYPE html> to the menu, lives in one file:
/includes/header.html. Each page starts like this:
<!--#set var="title" value="How it's made" -->
<!--#set var="page" value="how" -->
<!--#include virtual="/includes/header.html" -->
The server replaces the include with the file's contents before sending the page, so your browser (and search
engines) only ever see plain HTML. The header prints the title with
<!--#echo var="title" -->, and the page variable sets a class on
<body> that highlights the current menu item with CSS.
2. Dates and file names
The footer uses <!--#echo var="DOCUMENT_NAME" --> and
<!--#echo var="LAST_MODIFIED" -->, so every page shows its own name and when it was last
changed, without editing anything by hand.
3. A contact form without a backend
The form on the contact page posts to a special address on the site:
<form action="/_form/contact" method="post">
<input name="name">
<input name="email" type="email">
<textarea name="message"></textarea>
<input type="hidden" name="_redirect" value="/thanks.html">
<input type="hidden" name="_subject" value="Message from the demo site">
<!-- Left empty by people; bots fill it in and are ignored. -->
<input name="_gotcha" class="hidden" tabindex="-1" autocomplete="off">
<button>Send</button>
</form>
Pagehaus emails each message to the site's owner, with Reply-To set to the visitor's email, and then sends the
visitor to /thanks.html.
4. Uploading
The files were uploaded with SFTP (FileZilla, Cyberduck, scp or rsync all work). The
browser file manager works too, and can unpack a .zip.