quick-templater 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/.rspec +2 -0
- data/.travis.yml +6 -0
- data/Gemfile +11 -0
- data/LICENSE.txt +22 -0
- data/README.md +53 -0
- data/Rakefile +1 -0
- data/app/assets/stylesheets/quick-templater/bootstrap3/carousel.css +148 -0
- data/app/assets/stylesheets/quick-templater/bootstrap3/jumbotron.css +4 -0
- data/app/assets/stylesheets/quick-templater/bootstrap3/justified_nav.css +88 -0
- data/app/assets/stylesheets/quick-templater/bootstrap3/narrow_jumbotron.css +79 -0
- data/app/assets/stylesheets/quick-templater/bootstrap3/navbar.css +8 -0
- data/app/assets/stylesheets/quick-templater/bootstrap3/navbar_fixed_top.css +4 -0
- data/app/assets/stylesheets/quick-templater/bootstrap3/navbar_static_top.css +7 -0
- data/app/assets/stylesheets/quick-templater/bootstrap3/non_responsive.css +120 -0
- data/app/assets/stylesheets/quick-templater/bootstrap3/offcanvas.css +51 -0
- data/app/assets/stylesheets/quick-templater/bootstrap3/sign_in_page.css +40 -0
- data/app/assets/stylesheets/quick-templater/bootstrap3/starter.css +7 -0
- data/app/assets/stylesheets/quick-templater/bootstrap3/sticky_footer.css +38 -0
- data/app/assets/stylesheets/quick-templater/bootstrap3/sticky_footer_navbar.css +46 -0
- data/lib/generators/quick-templater/layout/layout_generator.rb +64 -0
- data/lib/generators/quick-templater/layout/templates/bootstrap3/carousel.html.erb +186 -0
- data/lib/generators/quick-templater/layout/templates/bootstrap3/jumbotron.html.erb +79 -0
- data/lib/generators/quick-templater/layout/templates/bootstrap3/justified_nav.html.erb +67 -0
- data/lib/generators/quick-templater/layout/templates/bootstrap3/narrow_jumbotron.html.erb +65 -0
- data/lib/generators/quick-templater/layout/templates/bootstrap3/navbar.html.erb +68 -0
- data/lib/generators/quick-templater/layout/templates/bootstrap3/navbar_fixed_top.html.erb +71 -0
- data/lib/generators/quick-templater/layout/templates/bootstrap3/navbar_static_top.html.erb +72 -0
- data/lib/generators/quick-templater/layout/templates/bootstrap3/non_responsive.html.erb +78 -0
- data/lib/generators/quick-templater/layout/templates/bootstrap3/offcanvas.html.erb +110 -0
- data/lib/generators/quick-templater/layout/templates/bootstrap3/quick-templater.css.erb +8 -0
- data/lib/generators/quick-templater/layout/templates/bootstrap3/sign_in_page.html.erb +34 -0
- data/lib/generators/quick-templater/layout/templates/bootstrap3/starter.html.erb +48 -0
- data/lib/generators/quick-templater/layout/templates/bootstrap3/sticky_footer.html.erb +37 -0
- data/lib/generators/quick-templater/layout/templates/bootstrap3/sticky_footer_navbar.html.erb +71 -0
- data/lib/quick-templater/version.rb +3 -0
- data/lib/quick-templater.rb +7 -0
- data/quick-templater.gemspec +25 -0
- data/spec/generators/layout_spec.rb +42 -0
- data/spec/spec_helper.rb +8 -0
- metadata +128 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
/* Sticky footer styles
|
2
|
+
-------------------------------------------------- */
|
3
|
+
|
4
|
+
html,
|
5
|
+
body {
|
6
|
+
height: 100%;
|
7
|
+
/* The html and body elements cannot have any padding or margin. */
|
8
|
+
}
|
9
|
+
|
10
|
+
/* Wrapper for page content to push down footer */
|
11
|
+
#wrap {
|
12
|
+
min-height: 100%;
|
13
|
+
height: auto;
|
14
|
+
/* Negative indent footer by its height */
|
15
|
+
margin: 0 auto -60px;
|
16
|
+
/* Pad bottom by footer height */
|
17
|
+
padding: 0 0 60px;
|
18
|
+
}
|
19
|
+
|
20
|
+
/* Set the fixed height of the footer here */
|
21
|
+
#footer {
|
22
|
+
height: 60px;
|
23
|
+
background-color: #f5f5f5;
|
24
|
+
}
|
25
|
+
|
26
|
+
|
27
|
+
/* Custom page CSS
|
28
|
+
-------------------------------------------------- */
|
29
|
+
/* Not required for template or sticky footer method. */
|
30
|
+
|
31
|
+
.container {
|
32
|
+
width: auto;
|
33
|
+
max-width: 680px;
|
34
|
+
padding: 0 15px;
|
35
|
+
}
|
36
|
+
.container .text-muted {
|
37
|
+
margin: 20px 0;
|
38
|
+
}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
|
2
|
+
/* Sticky footer styles
|
3
|
+
-------------------------------------------------- */
|
4
|
+
|
5
|
+
html,
|
6
|
+
body {
|
7
|
+
height: 100%;
|
8
|
+
/* The html and body elements cannot have any padding or margin. */
|
9
|
+
}
|
10
|
+
|
11
|
+
/* Wrapper for page content to push down footer */
|
12
|
+
#wrap {
|
13
|
+
min-height: 100%;
|
14
|
+
height: auto;
|
15
|
+
/* Negative indent footer by its height */
|
16
|
+
margin: 0 auto -60px;
|
17
|
+
/* Pad bottom by footer height */
|
18
|
+
padding: 0 0 60px;
|
19
|
+
}
|
20
|
+
|
21
|
+
/* Set the fixed height of the footer here */
|
22
|
+
#footer {
|
23
|
+
height: 60px;
|
24
|
+
background-color: #f5f5f5;
|
25
|
+
}
|
26
|
+
|
27
|
+
|
28
|
+
/* Custom page CSS
|
29
|
+
-------------------------------------------------- */
|
30
|
+
/* Not required for template or sticky footer method. */
|
31
|
+
|
32
|
+
#wrap > .container {
|
33
|
+
padding: 60px 15px 0;
|
34
|
+
}
|
35
|
+
.container .text-muted {
|
36
|
+
margin: 20px 0;
|
37
|
+
}
|
38
|
+
|
39
|
+
#footer > .container {
|
40
|
+
padding-left: 15px;
|
41
|
+
padding-right: 15px;
|
42
|
+
}
|
43
|
+
|
44
|
+
code {
|
45
|
+
font-size: 80%;
|
46
|
+
}
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module QuickTemplater
|
2
|
+
class Layout < Rails::Generators::Base
|
3
|
+
desc "Installs the application layout"
|
4
|
+
source_root File.expand_path('../templates/bootstrap3', __FILE__)
|
5
|
+
|
6
|
+
argument :layout_name, :type => :string, :default => 'application'
|
7
|
+
|
8
|
+
class_option :app_name, :type => :string, :default => 'Web App', :desc => 'Specify the application name'
|
9
|
+
class_option :engine, :type => :string, :default => 'erb', :desc => 'Specify the template engine (erb, haml or slim)'
|
10
|
+
class_option :type, :type => :string, :default => 'bootstrap3', :desc => 'Layout type, default or bootstrap3'
|
11
|
+
class_option :template, :type => :string, :default => 'starter', :desc => 'Layout template, default starter'
|
12
|
+
|
13
|
+
def copy_layout
|
14
|
+
layout = "#{options.template.underscore}.html.erb"
|
15
|
+
case options.engine
|
16
|
+
when 'erb'
|
17
|
+
template layout, "app/views/layouts/#{layout_name.underscore}.html.erb"
|
18
|
+
when 'haml'
|
19
|
+
generate_haml_layout layout
|
20
|
+
when 'slim'
|
21
|
+
generate_slim_layout layout
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def copy_template_stylesheet
|
26
|
+
template "quick-templater.css.erb", "app/assets/stylesheets/quick-templater.css"
|
27
|
+
end
|
28
|
+
|
29
|
+
protected
|
30
|
+
|
31
|
+
def generate_haml_layout(layout)
|
32
|
+
require 'haml'
|
33
|
+
require 'html2haml'
|
34
|
+
Dir.mktmpdir('quick-templater-haml') do |haml_root|
|
35
|
+
tmp_html_path = "#{haml_root}/#{layout}"
|
36
|
+
tmp_haml_path = "#{haml_root}/#{layout}.haml"
|
37
|
+
template layout, tmp_html_path, :verbose => false
|
38
|
+
`html2haml --erb --xhtml #{tmp_html_path} #{tmp_haml_path}`
|
39
|
+
copy_file tmp_haml_path, "app/views/layouts/#{layout_name.underscore}.html.haml"
|
40
|
+
end
|
41
|
+
rescue LoadError
|
42
|
+
say "HAML is not installed, or it is not specified in your Gemfile."
|
43
|
+
exit
|
44
|
+
end
|
45
|
+
|
46
|
+
def generate_slim_layout(layout)
|
47
|
+
require 'slim'
|
48
|
+
require 'html2haml'
|
49
|
+
require 'haml2slim'
|
50
|
+
Dir.mktmpdir('quick-templater-slim') do |slim_root|
|
51
|
+
tmp_html_path = "#{slim_root}/#{layout}"
|
52
|
+
tmp_haml_path = "#{slim_root}/#{layout}.haml"
|
53
|
+
tmp_slim_path = "#{slim_root}/#{layout}.slim"
|
54
|
+
template layout, tmp_html_path, :verbose => false
|
55
|
+
`html2haml --erb --xhtml #{tmp_html_path} #{tmp_haml_path}`
|
56
|
+
`haml2slim #{tmp_haml_path} #{tmp_slim_path}`
|
57
|
+
copy_file tmp_slim_path, "app/views/layouts/#{layout_name.underscore}.html.slim"
|
58
|
+
end
|
59
|
+
rescue LoadError
|
60
|
+
say "SLIM is not installed, or it is not specified in your Gemfile."
|
61
|
+
exit
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,186 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
7
|
+
|
8
|
+
<title><%= options.app_name %></title>
|
9
|
+
|
10
|
+
<%%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
|
11
|
+
<%%= stylesheet_link_tag "quick-templater", media: "all", "data-turbolinks-track" => true %>
|
12
|
+
<%%= javascript_include_tag "application", "data-turbolinks-track" => true %>
|
13
|
+
<%%= csrf_meta_tag %>
|
14
|
+
</head>
|
15
|
+
<!-- NAVBAR
|
16
|
+
================================================== -->
|
17
|
+
<body>
|
18
|
+
<div class="navbar-wrapper">
|
19
|
+
<div class="container">
|
20
|
+
|
21
|
+
<div class="navbar navbar-inverse navbar-static-top" role="navigation">
|
22
|
+
<div class="container">
|
23
|
+
<div class="navbar-header">
|
24
|
+
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
25
|
+
<span class="sr-only">Toggle navigation</span>
|
26
|
+
<span class="icon-bar"></span>
|
27
|
+
<span class="icon-bar"></span>
|
28
|
+
<span class="icon-bar"></span>
|
29
|
+
</button>
|
30
|
+
<a class="navbar-brand" href="#"><%= options.app_name %></a>
|
31
|
+
</div>
|
32
|
+
<div class="navbar-collapse collapse">
|
33
|
+
<ul class="nav navbar-nav">
|
34
|
+
<li class="active"><a href="#">Home</a></li>
|
35
|
+
<li><a href="#about">About</a></li>
|
36
|
+
<li><a href="#contact">Contact</a></li>
|
37
|
+
<li class="dropdown">
|
38
|
+
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
|
39
|
+
<ul class="dropdown-menu">
|
40
|
+
<li><a href="#">Action</a></li>
|
41
|
+
<li><a href="#">Another action</a></li>
|
42
|
+
<li><a href="#">Something else here</a></li>
|
43
|
+
<li class="divider"></li>
|
44
|
+
<li class="dropdown-header">Nav header</li>
|
45
|
+
<li><a href="#">Separated link</a></li>
|
46
|
+
<li><a href="#">One more separated link</a></li>
|
47
|
+
</ul>
|
48
|
+
</li>
|
49
|
+
</ul>
|
50
|
+
</div>
|
51
|
+
</div>
|
52
|
+
</div>
|
53
|
+
|
54
|
+
</div>
|
55
|
+
</div>
|
56
|
+
|
57
|
+
|
58
|
+
<!-- Carousel
|
59
|
+
================================================== -->
|
60
|
+
<div id="myCarousel" class="carousel slide" data-ride="carousel">
|
61
|
+
<!-- Indicators -->
|
62
|
+
<ol class="carousel-indicators">
|
63
|
+
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
|
64
|
+
<li data-target="#myCarousel" data-slide-to="1"></li>
|
65
|
+
<li data-target="#myCarousel" data-slide-to="2"></li>
|
66
|
+
</ol>
|
67
|
+
<div class="carousel-inner">
|
68
|
+
<div class="item active">
|
69
|
+
<img data-src="holder.js/900x500/auto/#777:#7a7a7a/text:First slide" alt="First slide">
|
70
|
+
<div class="container">
|
71
|
+
<div class="carousel-caption">
|
72
|
+
<h1>Example headline.</h1>
|
73
|
+
<p>Note: If you're viewing this page via a <code>file://</code> URL, the "next" and "previous" Glyphicon buttons on the left and right might not load/display properly due to web browser security rules.</p>
|
74
|
+
<p><a class="btn btn-lg btn-primary" href="#" role="button">Sign up today</a></p>
|
75
|
+
</div>
|
76
|
+
</div>
|
77
|
+
</div>
|
78
|
+
<div class="item">
|
79
|
+
<img data-src="holder.js/900x500/auto/#666:#6a6a6a/text:Second slide" alt="Second slide">
|
80
|
+
<div class="container">
|
81
|
+
<div class="carousel-caption">
|
82
|
+
<h1>Another example headline.</h1>
|
83
|
+
<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
|
84
|
+
<p><a class="btn btn-lg btn-primary" href="#" role="button">Learn more</a></p>
|
85
|
+
</div>
|
86
|
+
</div>
|
87
|
+
</div>
|
88
|
+
<div class="item">
|
89
|
+
<img data-src="holder.js/900x500/auto/#555:#5a5a5a/text:Third slide" alt="Third slide">
|
90
|
+
<div class="container">
|
91
|
+
<div class="carousel-caption">
|
92
|
+
<h1>One more for good measure.</h1>
|
93
|
+
<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
|
94
|
+
<p><a class="btn btn-lg btn-primary" href="#" role="button">Browse gallery</a></p>
|
95
|
+
</div>
|
96
|
+
</div>
|
97
|
+
</div>
|
98
|
+
</div>
|
99
|
+
<a class="left carousel-control" href="#myCarousel" data-slide="prev"><span class="glyphicon glyphicon-chevron-left"></span></a>
|
100
|
+
<a class="right carousel-control" href="#myCarousel" data-slide="next"><span class="glyphicon glyphicon-chevron-right"></span></a>
|
101
|
+
</div><!-- /.carousel -->
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
<!-- Marketing messaging and featurettes
|
106
|
+
================================================== -->
|
107
|
+
<!-- Wrap the rest of the page in another container to center all the content. -->
|
108
|
+
|
109
|
+
<div class="container marketing">
|
110
|
+
|
111
|
+
<!-- Three columns of text below the carousel -->
|
112
|
+
<div class="row">
|
113
|
+
<div class="col-lg-4">
|
114
|
+
<img class="img-circle" data-src="holder.js/140x140" alt="Generic placeholder image">
|
115
|
+
<h2>Heading</h2>
|
116
|
+
<p>Donec sed odio dui. Etiam porta sem malesuada magna mollis euismod. Nullam id dolor id nibh ultricies vehicula ut id elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Praesent commodo cursus magna.</p>
|
117
|
+
<p><a class="btn btn-default" href="#" role="button">View details »</a></p>
|
118
|
+
</div><!-- /.col-lg-4 -->
|
119
|
+
<div class="col-lg-4">
|
120
|
+
<img class="img-circle" data-src="holder.js/140x140" alt="Generic placeholder image">
|
121
|
+
<h2>Heading</h2>
|
122
|
+
<p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh.</p>
|
123
|
+
<p><a class="btn btn-default" href="#" role="button">View details »</a></p>
|
124
|
+
</div><!-- /.col-lg-4 -->
|
125
|
+
<div class="col-lg-4">
|
126
|
+
<img class="img-circle" data-src="holder.js/140x140" alt="Generic placeholder image">
|
127
|
+
<h2>Heading</h2>
|
128
|
+
<p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
|
129
|
+
<p><a class="btn btn-default" href="#" role="button">View details »</a></p>
|
130
|
+
</div><!-- /.col-lg-4 -->
|
131
|
+
</div><!-- /.row -->
|
132
|
+
|
133
|
+
|
134
|
+
<!-- START THE FEATURETTES -->
|
135
|
+
|
136
|
+
<hr class="featurette-divider">
|
137
|
+
|
138
|
+
<div class="row featurette">
|
139
|
+
<div class="col-md-7">
|
140
|
+
<h2 class="featurette-heading">First featurette heading. <span class="text-muted">It'll blow your mind.</span></h2>
|
141
|
+
<p class="lead">Donec ullamcorper nulla non metus auctor fringilla. Vestibulum id ligula porta felis euismod semper. Praesent commodo cursus magna, vel scelerisque nisl consectetur. Fusce dapibus, tellus ac cursus commodo.</p>
|
142
|
+
</div>
|
143
|
+
<div class="col-md-5">
|
144
|
+
<img class="featurette-image img-responsive" data-src="holder.js/500x500/auto" alt="Generic placeholder image">
|
145
|
+
</div>
|
146
|
+
</div>
|
147
|
+
|
148
|
+
<hr class="featurette-divider">
|
149
|
+
|
150
|
+
<div class="row featurette">
|
151
|
+
<div class="col-md-5">
|
152
|
+
<img class="featurette-image img-responsive" data-src="holder.js/500x500/auto" alt="Generic placeholder image">
|
153
|
+
</div>
|
154
|
+
<div class="col-md-7">
|
155
|
+
<h2 class="featurette-heading">Oh yeah, it's that good. <span class="text-muted">See for yourself.</span></h2>
|
156
|
+
<p class="lead">Donec ullamcorper nulla non metus auctor fringilla. Vestibulum id ligula porta felis euismod semper. Praesent commodo cursus magna, vel scelerisque nisl consectetur. Fusce dapibus, tellus ac cursus commodo.</p>
|
157
|
+
</div>
|
158
|
+
</div>
|
159
|
+
|
160
|
+
<hr class="featurette-divider">
|
161
|
+
|
162
|
+
<div class="row featurette">
|
163
|
+
<div class="col-md-7">
|
164
|
+
<h2 class="featurette-heading">And lastly, this one. <span class="text-muted">Checkmate.</span></h2>
|
165
|
+
<p class="lead">Donec ullamcorper nulla non metus auctor fringilla. Vestibulum id ligula porta felis euismod semper. Praesent commodo cursus magna, vel scelerisque nisl consectetur. Fusce dapibus, tellus ac cursus commodo.</p>
|
166
|
+
</div>
|
167
|
+
<div class="col-md-5">
|
168
|
+
<img class="featurette-image img-responsive" data-src="holder.js/500x500/auto" alt="Generic placeholder image">
|
169
|
+
</div>
|
170
|
+
</div>
|
171
|
+
|
172
|
+
<hr class="featurette-divider">
|
173
|
+
|
174
|
+
<!-- /END THE FEATURETTES -->
|
175
|
+
|
176
|
+
|
177
|
+
<!-- FOOTER -->
|
178
|
+
<footer>
|
179
|
+
<p class="pull-right"><a href="#">Back to top</a></p>
|
180
|
+
<p>© 2013 Company, Inc. · <a href="#">Privacy</a> · <a href="#">Terms</a></p>
|
181
|
+
</footer>
|
182
|
+
|
183
|
+
</div><!-- /.container -->
|
184
|
+
|
185
|
+
</body>
|
186
|
+
</html>
|
@@ -0,0 +1,79 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
7
|
+
|
8
|
+
<title><%= options.app_name %></title>
|
9
|
+
|
10
|
+
<%%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
|
11
|
+
<%%= stylesheet_link_tag "quick-templater", media: "all", "data-turbolinks-track" => true %>
|
12
|
+
<%%= javascript_include_tag "application", "data-turbolinks-track" => true %>
|
13
|
+
<%%= csrf_meta_tag %>
|
14
|
+
</head>
|
15
|
+
|
16
|
+
<body>
|
17
|
+
|
18
|
+
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
|
19
|
+
<div class="container">
|
20
|
+
<div class="navbar-header">
|
21
|
+
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
22
|
+
<span class="sr-only">Toggle navigation</span>
|
23
|
+
<span class="icon-bar"></span>
|
24
|
+
<span class="icon-bar"></span>
|
25
|
+
<span class="icon-bar"></span>
|
26
|
+
</button>
|
27
|
+
<a class="navbar-brand" href="#"><%= options.app_name %></a>
|
28
|
+
</div>
|
29
|
+
<div class="navbar-collapse collapse">
|
30
|
+
<form class="navbar-form navbar-right" role="form">
|
31
|
+
<div class="form-group">
|
32
|
+
<input type="text" placeholder="Email" class="form-control">
|
33
|
+
</div>
|
34
|
+
<div class="form-group">
|
35
|
+
<input type="password" placeholder="Password" class="form-control">
|
36
|
+
</div>
|
37
|
+
<button type="submit" class="btn btn-success">Sign in</button>
|
38
|
+
</form>
|
39
|
+
</div><!--/.navbar-collapse -->
|
40
|
+
</div>
|
41
|
+
</div>
|
42
|
+
|
43
|
+
<!-- Main jumbotron for a primary marketing message or call to action -->
|
44
|
+
<div class="jumbotron">
|
45
|
+
<div class="container">
|
46
|
+
<h1>Hello, world!</h1>
|
47
|
+
<p>This is a template for a simple marketing or informational website. It includes a large callout called a jumbotron and three supporting pieces of content. Use it as a starting point to create something more unique.</p>
|
48
|
+
<p><a class="btn btn-primary btn-lg" role="button">Learn more »</a></p>
|
49
|
+
</div>
|
50
|
+
</div>
|
51
|
+
|
52
|
+
<div class="container">
|
53
|
+
<!-- Example row of columns -->
|
54
|
+
<div class="row">
|
55
|
+
<div class="col-md-4">
|
56
|
+
<h2>Heading</h2>
|
57
|
+
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
58
|
+
<p><a class="btn btn-default" href="#" role="button">View details »</a></p>
|
59
|
+
</div>
|
60
|
+
<div class="col-md-4">
|
61
|
+
<h2>Heading</h2>
|
62
|
+
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
63
|
+
<p><a class="btn btn-default" href="#" role="button">View details »</a></p>
|
64
|
+
</div>
|
65
|
+
<div class="col-md-4">
|
66
|
+
<h2>Heading</h2>
|
67
|
+
<p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
|
68
|
+
<p><a class="btn btn-default" href="#" role="button">View details »</a></p>
|
69
|
+
</div>
|
70
|
+
</div>
|
71
|
+
|
72
|
+
<hr>
|
73
|
+
|
74
|
+
<footer>
|
75
|
+
<p>© Company 2013</p>
|
76
|
+
</footer>
|
77
|
+
</div> <!-- /container -->
|
78
|
+
</body>
|
79
|
+
</html>
|
@@ -0,0 +1,67 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
7
|
+
|
8
|
+
<title><%= options.app_name %></title>
|
9
|
+
|
10
|
+
<%%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
|
11
|
+
<%%= stylesheet_link_tag "quick-templater", media: "all", "data-turbolinks-track" => true %>
|
12
|
+
<%%= javascript_include_tag "application", "data-turbolinks-track" => true %>
|
13
|
+
<%%= csrf_meta_tag %>
|
14
|
+
</head>
|
15
|
+
|
16
|
+
<body>
|
17
|
+
|
18
|
+
<div class="container">
|
19
|
+
|
20
|
+
<div class="masthead">
|
21
|
+
<h3 class="text-muted"><%= options.app_name %></h3>
|
22
|
+
<ul class="nav nav-justified">
|
23
|
+
<li class="active"><a href="#">Home</a></li>
|
24
|
+
<li><a href="#">Projects</a></li>
|
25
|
+
<li><a href="#">Services</a></li>
|
26
|
+
<li><a href="#">Downloads</a></li>
|
27
|
+
<li><a href="#">About</a></li>
|
28
|
+
<li><a href="#">Contact</a></li>
|
29
|
+
</ul>
|
30
|
+
</div>
|
31
|
+
|
32
|
+
<!-- Jumbotron -->
|
33
|
+
<div class="jumbotron">
|
34
|
+
<h1>Marketing stuff!</h1>
|
35
|
+
<p class="lead">Cras justo odio, dapibus ac facilisis in, egestas eget quam. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet.</p>
|
36
|
+
<p><a class="btn btn-lg btn-success" href="#" role="button">Get started today</a></p>
|
37
|
+
</div>
|
38
|
+
|
39
|
+
<!-- Example row of columns -->
|
40
|
+
<div class="row">
|
41
|
+
<div class="col-lg-4">
|
42
|
+
<h2>Safari bug warning!</h2>
|
43
|
+
<p class="text-danger">Safari exhibits a bug in which resizing your browser horizontally causes rendering errors in the justified nav that are cleared upon refreshing.</p>
|
44
|
+
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
45
|
+
<p><a class="btn btn-primary" href="#" role="button">View details »</a></p>
|
46
|
+
</div>
|
47
|
+
<div class="col-lg-4">
|
48
|
+
<h2>Heading</h2>
|
49
|
+
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
50
|
+
<p><a class="btn btn-primary" href="#" role="button">View details »</a></p>
|
51
|
+
</div>
|
52
|
+
<div class="col-lg-4">
|
53
|
+
<h2>Heading</h2>
|
54
|
+
<p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa.</p>
|
55
|
+
<p><a class="btn btn-primary" href="#" role="button">View details »</a></p>
|
56
|
+
</div>
|
57
|
+
</div>
|
58
|
+
|
59
|
+
<!-- Site footer -->
|
60
|
+
<div class="footer">
|
61
|
+
<p>© Company 2013</p>
|
62
|
+
</div>
|
63
|
+
|
64
|
+
</div> <!-- /container -->
|
65
|
+
|
66
|
+
</body>
|
67
|
+
</html>
|
@@ -0,0 +1,65 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
7
|
+
|
8
|
+
<title><%= options.app_name %></title>
|
9
|
+
|
10
|
+
<%%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
|
11
|
+
<%%= stylesheet_link_tag "quick-templater", media: "all", "data-turbolinks-track" => true %>
|
12
|
+
<%%= javascript_include_tag "application", "data-turbolinks-track" => true %>
|
13
|
+
<%%= csrf_meta_tag %>
|
14
|
+
</head>
|
15
|
+
|
16
|
+
<body>
|
17
|
+
|
18
|
+
<div class="container">
|
19
|
+
<div class="header">
|
20
|
+
<ul class="nav nav-pills pull-right">
|
21
|
+
<li class="active"><a href="#">Home</a></li>
|
22
|
+
<li><a href="#">About</a></li>
|
23
|
+
<li><a href="#">Contact</a></li>
|
24
|
+
</ul>
|
25
|
+
<h3 class="text-muted"><%= options.app_name %></h3>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<div class="jumbotron">
|
29
|
+
<h1>Jumbotron heading</h1>
|
30
|
+
<p class="lead">Cras justo odio, dapibus ac facilisis in, egestas eget quam. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
|
31
|
+
<p><a class="btn btn-lg btn-success" href="#" role="button">Sign up today</a></p>
|
32
|
+
</div>
|
33
|
+
|
34
|
+
<div class="row marketing">
|
35
|
+
<div class="col-lg-6">
|
36
|
+
<h4>Subheading</h4>
|
37
|
+
<p>Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.</p>
|
38
|
+
|
39
|
+
<h4>Subheading</h4>
|
40
|
+
<p>Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.</p>
|
41
|
+
|
42
|
+
<h4>Subheading</h4>
|
43
|
+
<p>Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div class="col-lg-6">
|
47
|
+
<h4>Subheading</h4>
|
48
|
+
<p>Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.</p>
|
49
|
+
|
50
|
+
<h4>Subheading</h4>
|
51
|
+
<p>Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.</p>
|
52
|
+
|
53
|
+
<h4>Subheading</h4>
|
54
|
+
<p>Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
55
|
+
</div>
|
56
|
+
</div>
|
57
|
+
|
58
|
+
<div class="footer">
|
59
|
+
<p>© Company 2013</p>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
</div> <!-- /container -->
|
63
|
+
|
64
|
+
</body>
|
65
|
+
</html>
|
@@ -0,0 +1,68 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
7
|
+
|
8
|
+
<title><%= options.app_name %></title>
|
9
|
+
|
10
|
+
<%%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
|
11
|
+
<%%= stylesheet_link_tag "quick-templater", media: "all", "data-turbolinks-track" => true %>
|
12
|
+
<%%= javascript_include_tag "application", "data-turbolinks-track" => true %>
|
13
|
+
<%%= csrf_meta_tag %>
|
14
|
+
</head>
|
15
|
+
|
16
|
+
<body>
|
17
|
+
|
18
|
+
<div class="container">
|
19
|
+
|
20
|
+
<!-- Static navbar -->
|
21
|
+
<div class="navbar navbar-default" role="navigation">
|
22
|
+
<div class="navbar-header">
|
23
|
+
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
24
|
+
<span class="sr-only">Toggle navigation</span>
|
25
|
+
<span class="icon-bar"></span>
|
26
|
+
<span class="icon-bar"></span>
|
27
|
+
<span class="icon-bar"></span>
|
28
|
+
</button>
|
29
|
+
<a class="navbar-brand" href="#"><%= options.app_name %></a>
|
30
|
+
</div>
|
31
|
+
<div class="navbar-collapse collapse">
|
32
|
+
<ul class="nav navbar-nav">
|
33
|
+
<li class="active"><a href="#">Link</a></li>
|
34
|
+
<li><a href="#">Link</a></li>
|
35
|
+
<li><a href="#">Link</a></li>
|
36
|
+
<li class="dropdown">
|
37
|
+
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
|
38
|
+
<ul class="dropdown-menu">
|
39
|
+
<li><a href="#">Action</a></li>
|
40
|
+
<li><a href="#">Another action</a></li>
|
41
|
+
<li><a href="#">Something else here</a></li>
|
42
|
+
<li class="divider"></li>
|
43
|
+
<li class="dropdown-header">Nav header</li>
|
44
|
+
<li><a href="#">Separated link</a></li>
|
45
|
+
<li><a href="#">One more separated link</a></li>
|
46
|
+
</ul>
|
47
|
+
</li>
|
48
|
+
</ul>
|
49
|
+
<ul class="nav navbar-nav navbar-right">
|
50
|
+
<li class="active"><a href="#">Default</a></li>
|
51
|
+
<li><a href="#">Static top</a></li>
|
52
|
+
<li><a href="#">Fixed top</a></li>
|
53
|
+
</ul>
|
54
|
+
</div><!--/.nav-collapse -->
|
55
|
+
</div>
|
56
|
+
|
57
|
+
<!-- Main component for a primary marketing message or call to action -->
|
58
|
+
<div class="jumbotron">
|
59
|
+
<h1>Navbar example</h1>
|
60
|
+
<p>This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.</p>
|
61
|
+
<p>
|
62
|
+
<a class="btn btn-lg btn-primary" href="../../components/#navbar" role="button">View navbar docs »</a>
|
63
|
+
</p>
|
64
|
+
</div>
|
65
|
+
|
66
|
+
</div> <!-- /container -->
|
67
|
+
</body>
|
68
|
+
</html>
|