Permalink
Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
112 lines (96 sloc) 4.21 KB
-- Copyright 2010 Google Inc.
--
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
module Index where
import DevUtils
import Tutorial
import Text.Html
page = devpage "Start"
[ h1 << "Welcome aboard!"
, p << "Barley is an environment and tutorial for exploring Haskell. \
\Our aim is to make your first encounter with Haskell fun, \
\enjoyable, and practical. "
, steps
]
[ modMessage, tutorialOutlineModule, modTagLine ]
[]
type Step = (String, [Html])
steps :: Html
steps = ordList $ map mkStep [step1, step2, step3, step4]
where
mkStep (title, text) = p << bold << title +++ thediv << text
step1 :: Step
step1 = ("Install and run Barley",
[ p << "If you got here, you've done this step!"
])
step2 :: Step
step2 = ("Navigating Barley",
[ p << "This web site is a small development environment for Haskell. \
\Here are the main navigation elements:"
, p << (bold << "Top bar:" +++ "The black top bar at the very top of \
\the page has links to commonly used pages. At the top right, \
\Home takes you back to this page; Project takes you to a listing \
\of all the files that make up Barley. Documentation and Help are \
\what they say they are. In the upper left, the Haskell icon leads \
\to some common community web pages.")
, p << (bold << "Right sidebar:" +++ "On the right there are useful operations. \
\On this page, it includes \
\a listing of the complete tutorial. On other pages there are actions \
\relevant to the page you are on. If you are on a tutorial page, that \
\is where the next and previous steps will be listed.")
])
step3 :: Step
step3 = ("A Sample Page",
[ p << "If you want to try something right now, do this: "
, unordList
[ toHtml "Be sure you know how to get back here: The Home link in the upper right."
, toHtml "Be sure to read all the comments in the code you are about to see. \
\This is where the instructions will be."
, toHtml "Be brave."
, toHtml "Now go to " +++ anchor ! [href "Source?file=FirstPage.hs"] << "FirstPage.hs"
, toHtml "Come back here when you're done."
]
, p << "Congratulations! You're writing Haskell!"
])
step4 :: Step
step4 = ("Do the Tutorial",
[ p << "The tutorial is a sequence of pages written in Barley. Some pages are \
\a sequence of slides, others are code that you will edit and work on."
, p << "On the code pages, you should be sure to read the comments in the code, \
\since that is where the tutorial introduces new ideas, and guides you \
\along. On these pages you'll see a big Edit/Run switch near the top of \
\the page that will let you switch back and forth between editing the code \
\and viewing the page that that code renders."
, p << ("Start here: "
+++ anchor ! [href "Source?file=Chapter1/Step_1_1.hs&preview=1"] << "Chapter 1, Step 1")
])
modMessage :: Html
modMessage = (h2 << "pre-Alpha version") +++
(p << ("Just in case it wasn't totally clear: This is very early, \
\pre-Alpha software. We're making it up as fast as we can! \
\In the spirit of open source, we are developing in public, \
\so please be gentle!" +++ br +++ "— Johan & Mark"))
modSteps :: Html
modSteps = (h2 << "Tutorial Steps") +++
ordList [ "Step", "Step", "Quick-Step", "Slide" ] +++
p << "This will be a list of the steps some day…"
modTagLine :: Html
modTagLine = pre << (
"webSite :: " +++ (bold << "Haskell") +++ "\n\
\webSite = madeWith\n\
\ [ haskellPlatform\n\
\ , snapFramework\n\
\ , plugins\n\
\ , ghc\n\
\ ]"
)