An introduction to authoring literate programming documents