diff options
Diffstat (limited to 'templates/homepage.hamlet')
-rw-r--r-- | templates/homepage.hamlet | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/templates/homepage.hamlet b/templates/homepage.hamlet new file mode 100644 index 0000000..fb79965 --- /dev/null +++ b/templates/homepage.hamlet | |||
@@ -0,0 +1,139 @@ | |||
1 | <div .masthead> | ||
2 | <div .container> | ||
3 | <div .row> | ||
4 | <h1 .header> | ||
5 | Yesod—a modern framework for blazing fast websites | ||
6 | <h2> | ||
7 | Fast, stable & spiced with great community | ||
8 | <a href="http://www.yesodweb.com/book/" .btn.btn-info.btn-lg> | ||
9 | Read the Book | ||
10 | |||
11 | <div .container> | ||
12 | <!-- Starting | ||
13 | ================================================== --> | ||
14 | <div .bs-docs-section> | ||
15 | <div .row> | ||
16 | <div .col-lg-12> | ||
17 | <div .page-header> | ||
18 | <h1 #start>Starting | ||
19 | |||
20 | <p> | ||
21 | Now that you have a working project you should use the | ||
22 | <a href=http://www.yesodweb.com/book/>Yesod book</a> to learn more. | ||
23 | <p> | ||
24 | You can also use this scaffolded site to explore some concepts, and best practices. | ||
25 | |||
26 | <ul .list-group> | ||
27 | |||
28 | <li .list-group-item> | ||
29 | This page was generated by the <tt>#{handlerName}</tt> handler in | ||
30 | <tt>Handler/Home.hs</tt>. | ||
31 | |||
32 | <li .list-group-item> | ||
33 | The <tt>#{handlerName}</tt> handler is set to generate your | ||
34 | site's home screen in Routes file | ||
35 | <tt>config/routes | ||
36 | |||
37 | <li .list-group-item> | ||
38 | We can link to other handlers, like the <a href="@{ProfileR}">Profile</a>. | ||
39 | Try it out as an anonymous user and see the access denied. | ||
40 | Then, try to <a href="@{AuthR LoginR}">login</a> with the dummy authentication added | ||
41 | while in development. | ||
42 | |||
43 | <li .list-group-item> | ||
44 | The HTML you are seeing now is actually composed by a number of <em>widgets</em>, # | ||
45 | most of them are brought together by the <tt>defaultLayout</tt> function which # | ||
46 | is defined in the <tt>Foundation.hs</tt> module, and used by <tt>#{handlerName}</tt>. # | ||
47 | All the files for templates and wigdets are in <tt>templates</tt>. | ||
48 | |||
49 | <li .list-group-item> | ||
50 | A Widget's Html, Css and Javascript are separated in three files with the | ||
51 | <tt>.hamlet</tt>, <tt>.lucius</tt> and <tt>.julius</tt> extensions. | ||
52 | |||
53 | <li .list-group-item ##{aDomId}> | ||
54 | If you had javascript enabled then you wouldn't be seeing this. | ||
55 | |||
56 | <hr> | ||
57 | |||
58 | <!-- Forms | ||
59 | ================================================== --> | ||
60 | <div .bs-docs-section> | ||
61 | <div .row> | ||
62 | <div .col-lg-12> | ||
63 | <div .page-header> | ||
64 | <h1 #forms>Forms | ||
65 | |||
66 | <p> | ||
67 | This is an example of a form. Read the | ||
68 | <a href="http://www.yesodweb.com/book/forms">Forms chapter</a> # | ||
69 | on the yesod book to learn more about them. | ||
70 | |||
71 | <div .row> | ||
72 | <div .col-lg-6> | ||
73 | <div .bs-callout bs-callout-info well> | ||
74 | <form .form-horizontal method=post action=@{HomeR}#forms enctype=#{formEnctype}> | ||
75 | ^{formWidget} | ||
76 | |||
77 | <button .btn.btn-primary type="submit"> | ||
78 | Upload it! | ||
79 | |||
80 | |||
81 | <div .col-lg-4.col-lg-offset-1> | ||
82 | <div .bs-callout.bs-callout-info.upload-response> | ||
83 | |||
84 | $maybe (FileForm info con) <- submission | ||
85 | Your file type is <em>#{fileContentType info}</em>. You say it has: <em>#{con}</em> | ||
86 | |||
87 | $nothing | ||
88 | File upload result will be here... | ||
89 | |||
90 | |||
91 | <hr> | ||
92 | |||
93 | <!-- JSON | ||
94 | ================================================== --> | ||
95 | <div .bs-docs-section> | ||
96 | <div .row> | ||
97 | <div .col-lg-12> | ||
98 | <div .page-header> | ||
99 | <h1 #json>JSON | ||
100 | |||
101 | <p> | ||
102 | Yesod has JSON support baked-in. | ||
103 | The form below makes an AJAX request with Javascript, | ||
104 | then updates the page with your submission. | ||
105 | (see <tt>Handler/Comment.hs</tt>, <tt>templates/homepage.julius</tt>, | ||
106 | and <tt>Handler/Home.hs</tt> for the implementation). | ||
107 | |||
108 | <div .row> | ||
109 | <div .col-lg-6> | ||
110 | <div .bs-callout.bs-callout-info.well> | ||
111 | <form .form-horizontal ##{commentFormId}> | ||
112 | <div .field> | ||
113 | <textarea rows="2" ##{commentTextareaId} placeholder="Your comment here..." required></textarea> | ||
114 | |||
115 | <button .btn.btn-primary type=submit> | ||
116 | Create comment | ||
117 | |||
118 | <div .col-lg-4.col-lg-offset-1> | ||
119 | <div .bs-callout.bs-callout-info> | ||
120 | <small> | ||
121 | Your comments will appear here. You can also open the | ||
122 | console log to see the raw response from the server. | ||
123 | <ul ##{commentListId}> | ||
124 | |||
125 | <hr> | ||
126 | |||
127 | <!-- Testing | ||
128 | ================================================== --> | ||
129 | <div .bs-docs-section> | ||
130 | <div .row> | ||
131 | <div .col-lg-12> | ||
132 | <div .page-header> | ||
133 | <h1 #test>Testing | ||
134 | |||
135 | <p> | ||
136 | And last but not least, Testing. In <tt>test/Spec.hs</tt> you will find a # | ||
137 | test suite that performs tests on this page. | ||
138 | <p> | ||
139 | You can run your tests by doing: <code>stack test</code> | ||