diff --git a/stages/0/Main.elm b/stages/0/Main.elm deleted file mode 100644 index 4f34c41..0000000 --- a/stages/0/Main.elm +++ /dev/null @@ -1,86 +0,0 @@ -module Main (..) where - -import Html exposing (..) -import Html.Attributes exposing (..) -import Html.Events exposing (..) -import StartApp.Simple as StartApp - - -main = - StartApp.start - { view = view - , update = update - , model = initialModel - } - - -type alias Model = - { query : String - , results : List SearchResult - } - - -type alias SearchResult = - { id : ResultId - , name : String - , stars : Int - } - - -type alias ResultId = - Int - - -initialModel : Model -initialModel = - { query = "tutorial" - , results = - [ { id = 1 - , name = "TheSeamau5/elm-checkerboardgrid-tutorial" - , stars = 66 - } - , { id = 2 - , name = "grzegorzbalcerek/elm-by-example" - , stars = 41 - } - , { id = 3 - , name = "sporto/elm-tutorial-app" - , stars = 35 - } - , { id = 4 - , name = "jvoigtlaender/Elm-Tutorium" - , stars = 10 - } - , { id = 5 - , name = "sporto/elm-tutorial-assets" - , stars = 7 - } - ] - } - - -view address model = - div - [ class "content" ] - [ header - [] - [ h1 [] [ text "ElmHub" ] - , span [ class "tagline" ] [ text "“Like GitHub, but for Elm things.”" ] - ] - , ul - [ class "results" ] - [{- TODO use model.results and viewSearchResults to display results -}] - ] - - -viewSearchResult result = - li - [] - [ span [ class "star-count" ] [ text (toString result.stars) ] - -- TODO replace the following span with a link that opens in a new window! - , text result.name - ] - - -update action model = - model diff --git a/stages/0/README.md b/stages/0/README.md deleted file mode 100644 index e4a727c..0000000 --- a/stages/0/README.md +++ /dev/null @@ -1,17 +0,0 @@ -Stage 1 -======= - -## Installation - -```bash -elm package install -``` - -(Answer `y` at the prompt. In rare cases a known issue can cause the download -to fail; in that case, just run `elm package install` again.) - -## Building - -```bash -elm live Main.elm --open -- --output=elm.js -``` diff --git a/stages/0/elm-hub.png b/stages/0/elm-hub.png deleted file mode 100644 index ba32816..0000000 Binary files a/stages/0/elm-hub.png and /dev/null differ diff --git a/stages/0/elm-package.json b/stages/0/elm-package.json deleted file mode 100644 index 588e1cf..0000000 --- a/stages/0/elm-package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "version": "1.0.0", - "summary": "Like GitHub, but for Elm stuff.", - "repository": "https://github.com/rtfeldman/elm-workshop.git", - "license": "BSD-3-Clause", - "source-directories": [ - "." - ], - "exposed-modules": [], - "dependencies": { - "elm-lang/core": "3.0.0 <= v < 4.0.0", - "evancz/elm-effects": "2.0.0 <= v < 3.0.0", - "evancz/elm-html": "4.0.0 <= v < 5.0.0", - "evancz/start-app": "2.0.0 <= v < 3.0.0" - }, - "elm-version": "0.16.0 <= v < 0.17.0" -} diff --git a/stages/0/index.html b/stages/0/index.html deleted file mode 100644 index d045ba4..0000000 --- a/stages/0/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - ElmHub - - - - - - - - - - - - - - - diff --git a/stages/0/style.css b/stages/0/style.css deleted file mode 100644 index 5a5a285..0000000 --- a/stages/0/style.css +++ /dev/null @@ -1,91 +0,0 @@ - -.content { - width: 960px; - margin: 0 auto; - padding: 30px; - font-family: Helvetica, Arial, serif; -} - -header { - position: relative; - padding: 6px 12px; - background-color: rgb(96, 181, 204); -} - -h1 { - color: white; - font-weight: normal; - margin: 0; -} - -.tagline { - color: #eee; - position: absolute; - right: 16px; - top: 12px; - font-size: 24px; - font-style: italic; -} - -.results { - list-style-image: url('http://img-cache.cdn.gaiaonline.com/76bd5c99d8f2236e9d3672510e933fdf/http://i278.photobucket.com/albums/kk81/d3m3nt3dpr3p/Tiny-Star-Icon.png'); - list-style-position: inside; - padding: 0; -} - -.results li { - font-size: 18px; - margin-bottom: 16px; -} - -.star-count { - font-weight: bold; - margin-right: 16px; -} - -a { - color: rgb(96, 181, 204); - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - -.search-query { - padding: 8px; - font-size: 24px; - margin-bottom: 18px; - margin-top: 36px; -} - -.search-button { - padding: 8px 16px; - font-size: 24px; - color: white; - border: 1px solid #ccc; - background-color: rgb(96, 181, 204); - margin-left: 12px -} - -.search-button:hover { - color: rgb(96, 181, 204); - background-color: white; -} - -.hide-result { - background-color: transparent; - border: 0; - font-weight: bold; - font-size: 18px; - margin-left: 18px; - cursor: pointer; -} - -.hide-result:hover { - color: rgb(96, 181, 204); -} - -button:focus, input:focus { - outline: none; -} diff --git a/stages/1/Main.elm b/stages/1/Main.elm index ddcbdb2..d0399f9 100644 --- a/stages/1/Main.elm +++ b/stages/1/Main.elm @@ -30,6 +30,10 @@ type alias ResultId = Int + +{- See https://developer.github.com/v3/search/#example -} + + initialModel : Model initialModel = { query = "tutorial" @@ -58,13 +62,14 @@ initialModel = } -view address model = +view : Address Action -> Model -> Html +view model = div [ class "content" ] [ header [] - [ h1 [] [ text "ElmHub" ] - , span [ class "tagline" ] [ text "“Like GitHub, but for Elm things.”" ] + [ -- TODO add the equivalent of

ElmHub

right before the tagline + span [ class "tagline" ] [ text "“Like GitHub, but for Elm things.”" ] ] , ul [ class "results" ] @@ -72,14 +77,11 @@ view address model = ] +viewSearchResult : SearchResult -> Html viewSearchResult result = li [] [ span [ class "star-count" ] [ text (toString result.stars) ] - -- TODO replace the following span with a link that opens in a new window! + -- TODO replace the following with a link that opens in a new window! , text result.name ] - - -update action model = - model diff --git a/stages/2/Main.elm b/stages/2/Main.elm index b0685de..7d5780b 100644 --- a/stages/2/Main.elm +++ b/stages/2/Main.elm @@ -4,10 +4,6 @@ import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (..) import StartApp.Simple as StartApp -import Task exposing (Task) -import Effects exposing (Effects) -import Json.Decode exposing (Decoder, (:=)) -import Json.Encode import Signal exposing (Address)