easy_html_generator 1.0.4 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.codeclimate.yml +6 -0
- data/.gitignore +12 -0
- data/.rubocop.yml +18 -0
- data/.travis.yml +14 -0
- data/Gemfile +3 -0
- data/README.md +51 -337
- data/Rakefile +42 -0
- data/config.ru +4 -0
- data/docs/CONFIGURATION.md +84 -0
- data/{CONTRIBUTING.md → docs/CONTRIBUTING.md} +2 -0
- data/docs/GENERATORS.md +210 -0
- data/docs/GETSTARTED.md +92 -0
- data/easy_html_generator.gemspec +54 -0
- data/lib/easy_html_generator/checksum.rb +4 -0
- data/lib/easy_html_generator/config.rb +0 -77
- data/lib/easy_html_generator/generator/base.rb +20 -58
- data/lib/easy_html_generator/generator/combine.rb +9 -19
- data/lib/easy_html_generator/generator/compile/base.rb +51 -0
- data/lib/easy_html_generator/generator/compile/coffee.rb +6 -13
- data/lib/easy_html_generator/generator/compile/haml/helper/activesupport_override.rb +1 -6
- data/lib/easy_html_generator/generator/compile/haml/helper/asset_helper.rb +7 -7
- data/lib/easy_html_generator/generator/compile/haml.rb +20 -45
- data/lib/easy_html_generator/generator/compile/sass.rb +9 -13
- data/lib/easy_html_generator/generator/copy.rb +7 -14
- data/lib/easy_html_generator/generator/delete.rb +4 -13
- data/lib/easy_html_generator/generator/minimize/css.rb +5 -12
- data/lib/easy_html_generator/generator/minimize/html.rb +5 -12
- data/lib/easy_html_generator/generator/minimize/images.rb +6 -20
- data/lib/easy_html_generator/generator/minimize/js.rb +5 -12
- data/lib/easy_html_generator/generator/service/analytics.rb +19 -19
- data/lib/easy_html_generator/generator/service/bower.rb +21 -17
- data/lib/easy_html_generator/generator/service/grunt.rb +12 -11
- data/lib/easy_html_generator/generator/service/sitemap.rb +33 -0
- data/lib/easy_html_generator/generator/structure.rb +2 -6
- data/lib/easy_html_generator/generator.rb +6 -6
- data/lib/easy_html_generator/project.rb +5 -0
- data/lib/easy_html_generator/project_path_resolver.rb +57 -0
- data/lib/easy_html_generator/rack_dispatcher.rb +1 -1
- data/lib/easy_html_generator/version.rb +4 -0
- data/lib/easy_html_generator/workspace.rb +1 -1
- data/lib/easy_html_generator.rb +19 -18
- data/src/demo/assets/styles/app.css.sass +47 -2
- data/src/demo/lib/helper/projecthelper.rb +3 -0
- data/src/demo/project.yml +142 -0
- data/src/demo/views/index/_bower_and_grunt.haml +7 -0
- data/src/demo/views/index/_dry.haml +16 -0
- data/src/demo/views/index/_haml_sass_coffee.haml +11 -0
- data/src/demo/views/index/_inline_coffee_and_sass.haml +43 -0
- data/src/demo/views/index/_sass_mixins.haml +76 -0
- data/src/demo/views/index.html.haml +13 -1
- data/src/demo/views/layout/_assets.javascripts.haml +7 -0
- data/src/demo/views/layout/_assets.metadata.haml +12 -0
- data/src/demo/views/layout/_assets.stylesheets.haml +9 -0
- data/src/demo/views/layout/_footer.haml +3 -0
- data/src/demo/views/layout/_header.haml +1 -0
- data/src/demo/views/layout.haml +8 -4
- data/src/demo/views/plain.html +1 -0
- data/src/shared/assets/styles/mixins/_bootstrap-fixes.sass +12 -0
- data/src/shared/assets/styles/mixins/_headjs-bootstrap-mediaqueries.sass +30 -0
- data/src/shared/project.yml +56 -35
- data/src/template/project.yml +57 -43
- metadata +75 -7
- data/src/demo/views/index/_lore_ipsum.haml +0 -1
@@ -0,0 +1,57 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
# this class represents a project and handles generators and ressources
|
4
|
+
class EasyHtmlGenerator::ProjectPathResolver
|
5
|
+
def initialize(project)
|
6
|
+
@project = project
|
7
|
+
@path_prefix_replace_map = {
|
8
|
+
'src' => project.src_path,
|
9
|
+
'dist' => project.dist_path,
|
10
|
+
'src.scripts' => project.src_path_to(:scripts),
|
11
|
+
'src.styles' => project.src_path_to(:styles),
|
12
|
+
'src.images' => project.src_path_to(:images),
|
13
|
+
'src.public' => project.src_path_to(:public),
|
14
|
+
'src.views' => project.src_path_to(:views),
|
15
|
+
'dist.scripts' => project.dist_path_to(:scripts),
|
16
|
+
'dist.styles' => project.dist_path_to(:styles),
|
17
|
+
'dist.images' => project.dist_path_to(:images),
|
18
|
+
'dist.public' => project.dist_path_to(:public),
|
19
|
+
'dist.views' => project.dist_path_to(:views),
|
20
|
+
'workspace.root' => EasyHtmlGenerator::WORKSPACE_PATH,
|
21
|
+
'ehg.root' => EasyHtmlGenerator::EHG_SRC_PATH
|
22
|
+
}
|
23
|
+
end
|
24
|
+
|
25
|
+
def resolve_config(config)
|
26
|
+
resolve_hash(config)
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def resolve_hash(myHash)
|
32
|
+
myHash.each do |key, value|
|
33
|
+
value.is_a?(Hash) ? resolve_hash(value) : (value.is_a?(Array) ? (myHash[key] = resolve_array(value)) : (myHash[key] = resolve_path(value)))
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def resolve_array(myArray)
|
38
|
+
myArray.map do |value|
|
39
|
+
value.is_a?(Array) ? resolve_array(value) : (value.is_a?(Hash) ? resolve_hash(value) : resolve_path(value))
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def resolve_path(path)
|
44
|
+
return path unless path.is_a? String
|
45
|
+
return path unless path.include? '://'
|
46
|
+
|
47
|
+
splitted = path.split('://')
|
48
|
+
unresolved_prefix = splitted.first
|
49
|
+
|
50
|
+
path_prefix = @path_prefix_replace_map[unresolved_prefix]
|
51
|
+
|
52
|
+
return path unless @path_prefix_replace_map.key? unresolved_prefix
|
53
|
+
return path_prefix if splitted.length == 1
|
54
|
+
|
55
|
+
File.join(path_prefix, splitted.second)
|
56
|
+
end
|
57
|
+
end
|
@@ -11,7 +11,7 @@ class EasyHtmlGenerator::RackDispatcher
|
|
11
11
|
</style></head>
|
12
12
|
<body>
|
13
13
|
{CONTENT}
|
14
|
-
<a target='_blank' href='#{EHG_URL}'>
|
14
|
+
<a target='_blank' href='#{EHG_URL}'>ehg on Github</a></body></html>"
|
15
15
|
|
16
16
|
def initialize(app)
|
17
17
|
@app = app
|
@@ -25,7 +25,7 @@ class EasyHtmlGenerator::Workspace
|
|
25
25
|
|
26
26
|
def self.create_project(name)
|
27
27
|
FileUtils.cp_r(
|
28
|
-
File.join(EasyHtmlGenerator::
|
28
|
+
File.join(EasyHtmlGenerator::EHG_SRC_PATH, 'template'),
|
29
29
|
File.join(EasyHtmlGenerator::SRC_PATH, name))
|
30
30
|
end
|
31
31
|
|
data/lib/easy_html_generator.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
$LOAD_PATH.unshift File.dirname(__FILE__)
|
3
|
+
require 'easy_html_generator/version'
|
5
4
|
|
6
5
|
# just require bootsrap and it will be in the sass path
|
7
6
|
require 'bootstrap-sass'
|
@@ -13,14 +12,14 @@ require 'thin'
|
|
13
12
|
|
14
13
|
# main module loads projects and dispatches rack requests
|
15
14
|
module EasyHtmlGenerator
|
16
|
-
|
15
|
+
EHG_WORKSPACE_PATH =
|
17
16
|
File.expand_path File.join(File.dirname(__FILE__), '..')
|
18
17
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
18
|
+
EHG_SRC_PATH = File.join(EHG_WORKSPACE_PATH, 'src')
|
19
|
+
EHG_SHARED_PATH = File.join(EHG_SRC_PATH, 'shared')
|
20
|
+
EHG_SHARED_HELPER_PATH = File.join(EHG_SHARED_PATH, 'lib', 'helper')
|
21
|
+
EHG_SHARED_GENERATORS_PATH = File.join(EHG_SHARED_PATH, 'lib', 'generators')
|
22
|
+
EHG_SHARED_STYLES_PATH = File.join(EHG_SHARED_PATH, 'assets', 'styles')
|
24
23
|
|
25
24
|
WORKSPACE_PATH = Bundler.root
|
26
25
|
SRC_PATH = File.join(WORKSPACE_PATH, 'src')
|
@@ -35,9 +34,9 @@ module EasyHtmlGenerator
|
|
35
34
|
DIST_PATH
|
36
35
|
]
|
37
36
|
|
38
|
-
COPY_ON_INIT
|
39
|
-
|
40
|
-
"#{
|
37
|
+
COPY_ON_INIT = {
|
38
|
+
EHG_SHARED_PATH => SHARED_PATH,
|
39
|
+
"#{EHG_SRC_PATH}/template" => "#{SRC_PATH}/demo"
|
41
40
|
}
|
42
41
|
|
43
42
|
Dir[File.dirname(__FILE__) + '/easy_html_generator/*.rb']
|
@@ -75,7 +74,7 @@ module EasyHtmlGenerator
|
|
75
74
|
end
|
76
75
|
|
77
76
|
def self.generate_all
|
78
|
-
Workspace.projects.each{|
|
77
|
+
Workspace.projects.each { |_name, project| project.generate }
|
79
78
|
end
|
80
79
|
|
81
80
|
def self.generate_project(project)
|
@@ -85,24 +84,26 @@ module EasyHtmlGenerator
|
|
85
84
|
def self.rack_app
|
86
85
|
Rack::Builder.new do
|
87
86
|
use Rack::ShowExceptions
|
88
|
-
use Rack::Reloader, 0
|
89
87
|
use EasyHtmlGenerator::RackDispatcher
|
90
88
|
use Rack::Deflater
|
91
89
|
use Rack::ContentLength
|
92
90
|
use Rack::StaticCache, urls: [''], root: EasyHtmlGenerator::DIST_PATH
|
93
91
|
use Rack::Static,
|
94
|
-
|
95
|
-
|
96
|
-
|
92
|
+
urls: [''],
|
93
|
+
root: EasyHtmlGenerator::DIST_PATH,
|
94
|
+
index: 'index.html'
|
97
95
|
|
98
|
-
run
|
96
|
+
run -> (_env) do
|
97
|
+
[404, { 'Content-Type' => 'text/plain' }, ['404 File not found!']]
|
98
|
+
end
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
102
102
|
def self.start_server(host, port)
|
103
103
|
config = { Host: host,
|
104
|
-
Port: port}
|
104
|
+
Port: port }
|
105
105
|
|
106
|
+
Thin::Logging.debug = true
|
106
107
|
Rack::Handler.get('thin').run(rack_app, config)
|
107
108
|
end
|
108
109
|
end
|
@@ -1,2 +1,47 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
@import "bootstrap/variables"
|
2
|
+
@import "bootstrap/mixins"
|
3
|
+
@import "mixins/css3"
|
4
|
+
@import "mixins/helper"
|
5
|
+
@import "mixins/normalize"
|
6
|
+
@import "mixins/buttons"
|
7
|
+
@import "mixins/arrows"
|
8
|
+
|
9
|
+
*
|
10
|
+
font-family: 'Open SANS',sans-serif
|
11
|
+
|
12
|
+
+headlines
|
13
|
+
+text-shadow(1px, 1px, 3px, #555)
|
14
|
+
|
15
|
+
h1
|
16
|
+
font-size: 42px
|
17
|
+
+bold
|
18
|
+
|
19
|
+
img
|
20
|
+
+transition(all, .3s, ease-in-out)
|
21
|
+
|
22
|
+
.semibold
|
23
|
+
font-weight: 600
|
24
|
+
|
25
|
+
.content-left, .content-right
|
26
|
+
+make-xs-column(12)
|
27
|
+
+make-sm-column(6)
|
28
|
+
|
29
|
+
.button.magenta
|
30
|
+
+make-magenta-button()
|
31
|
+
+zoom-on-hover
|
32
|
+
|
33
|
+
.button.green
|
34
|
+
+make-green-button()
|
35
|
+
+zoom-on-hover
|
36
|
+
|
37
|
+
.arrow-up
|
38
|
+
+arrow-up(60px, 20px, #62bc19)
|
39
|
+
+inline-block
|
40
|
+
|
41
|
+
.arrow-down
|
42
|
+
+arrow-down(40px, 40px, #c83c29)
|
43
|
+
+inline-block
|
44
|
+
|
45
|
+
.section
|
46
|
+
padding: 30px 0
|
47
|
+
+make-row
|
@@ -2,4 +2,7 @@
|
|
2
2
|
|
3
3
|
# this helper will be loaded into the haml render context for this project
|
4
4
|
module Projecthelper
|
5
|
+
def action_view_link
|
6
|
+
link_to 'action_view', 'http://guides.rubyonrails.org/action_view_overview.html#overview-of-helpers-provided-by-action-view', target: 'blank'
|
7
|
+
end
|
5
8
|
end
|
@@ -0,0 +1,142 @@
|
|
1
|
+
generate_on_request_path_match:
|
2
|
+
- '.*html$'
|
3
|
+
|
4
|
+
paths:
|
5
|
+
src:
|
6
|
+
images: 'assets/images'
|
7
|
+
scripts: 'assets/scripts'
|
8
|
+
styles: 'assets/styles'
|
9
|
+
public: 'assets/public'
|
10
|
+
helper: 'lib/helper'
|
11
|
+
generators: 'lib/generators'
|
12
|
+
views: 'views'
|
13
|
+
dist:
|
14
|
+
public: ''
|
15
|
+
views: ''
|
16
|
+
images: 'images'
|
17
|
+
scripts: 'scripts'
|
18
|
+
styles: 'styles'
|
19
|
+
|
20
|
+
generators:
|
21
|
+
- delete:
|
22
|
+
enabled: false
|
23
|
+
source: 'dist://**/*'
|
24
|
+
|
25
|
+
- structure:
|
26
|
+
enabled: true
|
27
|
+
|
28
|
+
- service_bower:
|
29
|
+
enabled: true
|
30
|
+
source: 'src://'
|
31
|
+
target: 'dist://lib'
|
32
|
+
|
33
|
+
- compile_coffee:
|
34
|
+
enabled: true
|
35
|
+
minimize: true
|
36
|
+
source: 'src.scripts://'
|
37
|
+
target: 'dist.scripts://'
|
38
|
+
selector: '**/*.js.coffee'
|
39
|
+
|
40
|
+
- compile_sass:
|
41
|
+
enabled: true
|
42
|
+
minimize: true
|
43
|
+
source: 'src.styles://'
|
44
|
+
target: 'dist.styles://'
|
45
|
+
selector: '**/*.css.sass'
|
46
|
+
|
47
|
+
- copy:
|
48
|
+
enabled: true
|
49
|
+
repetitive:
|
50
|
+
-
|
51
|
+
source: 'src.styles://'
|
52
|
+
target: 'dist.styles://'
|
53
|
+
selector: '**/*.css'
|
54
|
+
-
|
55
|
+
source: 'src.scripts://'
|
56
|
+
target: 'dist.scripts://'
|
57
|
+
-
|
58
|
+
source: 'src.images://'
|
59
|
+
target: 'dist.images://'
|
60
|
+
-
|
61
|
+
source: 'src.public://'
|
62
|
+
target: 'dist.public://'
|
63
|
+
|
64
|
+
- compile_haml:
|
65
|
+
enabled: true
|
66
|
+
minimize: true
|
67
|
+
source: 'src.views://'
|
68
|
+
target: 'dist.views://'
|
69
|
+
selector: '**/*.html.haml'
|
70
|
+
default_layout: 'views/layout.haml'
|
71
|
+
renderer:
|
72
|
+
attr_wrapper: '"'
|
73
|
+
format: :html5
|
74
|
+
shared_helper_path: 'shared/lib'
|
75
|
+
|
76
|
+
- service_analytics:
|
77
|
+
enabled: false
|
78
|
+
source: 'dist.views://'
|
79
|
+
target: 'dist.views://'
|
80
|
+
selector: '**/*.html'
|
81
|
+
repetitive:
|
82
|
+
-
|
83
|
+
enabled: true
|
84
|
+
name: 'google'
|
85
|
+
code: "<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create', '{GOOGLE_UA_ID}', 'auto');ga('send', 'pageview');</script>"
|
86
|
+
params:
|
87
|
+
GOOGLE_UA_ID: google_id
|
88
|
+
|
89
|
+
- minimize_js:
|
90
|
+
enabled: true
|
91
|
+
source: 'src.scripts://'
|
92
|
+
target: 'dist.scripts://'
|
93
|
+
selector: '**/*.js'
|
94
|
+
prefix_extension: '.min'
|
95
|
+
|
96
|
+
- minimize_css:
|
97
|
+
enabled: true
|
98
|
+
source: 'src.styles://'
|
99
|
+
target: 'dist.styles://'
|
100
|
+
selector: '**/*.css'
|
101
|
+
prefix_extension: '.min'
|
102
|
+
|
103
|
+
- minimize_html:
|
104
|
+
enabled: true
|
105
|
+
source: 'src.public://'
|
106
|
+
target: 'dist.public://'
|
107
|
+
selector: '**/*.html'
|
108
|
+
prefix_extension: ''
|
109
|
+
|
110
|
+
- minimize_images:
|
111
|
+
enabled: false
|
112
|
+
source: 'src.images://'
|
113
|
+
target: 'dist.images://'
|
114
|
+
selector: '**/*.{jpg,jpeg,png}'
|
115
|
+
options:
|
116
|
+
quality: 90
|
117
|
+
level: 3
|
118
|
+
verbose: true
|
119
|
+
|
120
|
+
- combine:
|
121
|
+
enabled: false
|
122
|
+
repetitive:
|
123
|
+
-
|
124
|
+
target: 'dist.scripts://combined.js'
|
125
|
+
sources:
|
126
|
+
- 'dist.scripts://**/*.js'
|
127
|
+
-
|
128
|
+
target: 'dist.styles://combined.css'
|
129
|
+
sources:
|
130
|
+
- 'dist.styles://**/*.css'
|
131
|
+
|
132
|
+
- service_grunt:
|
133
|
+
enabled: true
|
134
|
+
source: 'src://Gruntfile.coffee'
|
135
|
+
task: 'default'
|
136
|
+
|
137
|
+
- service_sitemap:
|
138
|
+
enabled: false
|
139
|
+
domain: www.demo.com
|
140
|
+
source: 'dist.views:'
|
141
|
+
target: 'dist.views://sitemap.xml'
|
142
|
+
selector: '**/*.html'
|
@@ -0,0 +1,7 @@
|
|
1
|
+
%h2.semibold
|
2
|
+
use bower and grunt in your projects
|
3
|
+
|
4
|
+
%p
|
5
|
+
just put a bower.json or a Gruntfile into your source folder and configure the generators in your project.yml. don't forget to install bower 'npm install -g bower\'
|
6
|
+
= link_to 'http://bower.io/', 'http://bower.io/', target: 'blank'
|
7
|
+
= link_to 'http://gruntjs.com/', 'http://gruntjs.com/', target: 'blank'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
%h2.semibold
|
2
|
+
Dont`t repeat your self!
|
3
|
+
|
4
|
+
%p
|
5
|
+
Layouts, templates, partials, helpers and static assets. There are shared helper for haml, sass and coffee. You can extend these helpers. You can add per project helpers and generators or per workspace.
|
6
|
+
%p
|
7
|
+
So Dont Repeat Your self! There are tons of features allready implemented and there will be more!
|
8
|
+
|
9
|
+
= link_to 'Follow on github', 'https://github.com/creative-workflow/easy-html-generator', target: '_blank'
|
10
|
+
|
11
|
+
The copyright for ex.
|
12
|
+
%br
|
13
|
+
%code
|
14
|
+
\= copyright 'ehg'
|
15
|
+
%br
|
16
|
+
= copyright 'ehg'
|
@@ -0,0 +1,11 @@
|
|
1
|
+
%h2.semibold
|
2
|
+
sass, haml, coffee
|
3
|
+
%p
|
4
|
+
We use sass, haml and coffe script. We also include
|
5
|
+
= action_view_link
|
6
|
+
for easier displaying images for ex.
|
7
|
+
%br
|
8
|
+
%code
|
9
|
+
\= image_tag('demo.png', class: 'img-thumbnail', style: 'height: 50px; width: auto')
|
10
|
+
%br
|
11
|
+
= image_tag('demo.png', class: 'img-thumbnail', style: 'height: 50px; width: auto')
|
@@ -0,0 +1,43 @@
|
|
1
|
+
%h2.semibold
|
2
|
+
inline coffee and sass, with minimization support
|
3
|
+
|
4
|
+
.content-left
|
5
|
+
%h3
|
6
|
+
inline sass
|
7
|
+
|
8
|
+
%p.inline-sass
|
9
|
+
text styled from inline sass
|
10
|
+
|
11
|
+
= with_sass do
|
12
|
+
:plain
|
13
|
+
p.inline-sass
|
14
|
+
color: green
|
15
|
+
|
16
|
+
%pre.code
|
17
|
+
= preserve do
|
18
|
+
:escaped
|
19
|
+
= with_sass do
|
20
|
+
:plain
|
21
|
+
p.inline-sass
|
22
|
+
color: green
|
23
|
+
|
24
|
+
.content-right
|
25
|
+
%h3
|
26
|
+
inline coffee
|
27
|
+
|
28
|
+
%p
|
29
|
+
%button.inline-coffee
|
30
|
+
click me
|
31
|
+
|
32
|
+
= with_coffee do
|
33
|
+
:plain
|
34
|
+
$('.inline-coffee').click ->
|
35
|
+
alert 'button clicked'
|
36
|
+
|
37
|
+
%pre.code
|
38
|
+
= preserve do
|
39
|
+
:escaped
|
40
|
+
= with_coffee do
|
41
|
+
:plain
|
42
|
+
$('.inline-coffee').click ->
|
43
|
+
alert 'button clicked'
|
@@ -0,0 +1,76 @@
|
|
1
|
+
|
2
|
+
%h2.semibold
|
3
|
+
For sass we offer mixins for ...
|
4
|
+
|
5
|
+
.content-left
|
6
|
+
%h3
|
7
|
+
bootsrap, reset, normalize and headjs
|
8
|
+
|
9
|
+
%pre.code
|
10
|
+
= preserve do
|
11
|
+
:escaped
|
12
|
+
@import "bootstrap/variables"
|
13
|
+
@import "bootstrap/mixins"
|
14
|
+
@import "mixins/normalize"
|
15
|
+
|
16
|
+
*
|
17
|
+
font-family: 'Open SANS',sans-serif
|
18
|
+
|
19
|
+
.content-left, .content-right
|
20
|
+
+make-xs-column(12)
|
21
|
+
+make-sm-column(6)
|
22
|
+
|
23
|
+
.content-right
|
24
|
+
%h3
|
25
|
+
css3 and helper mixins
|
26
|
+
|
27
|
+
%pre.code
|
28
|
+
= preserve do
|
29
|
+
:escaped
|
30
|
+
@import "mixins/css3"
|
31
|
+
@import "mixins/helper"
|
32
|
+
|
33
|
+
+headlines
|
34
|
+
+text-shadow(1px, 1px, 3px, #555)
|
35
|
+
|
36
|
+
h1
|
37
|
+
+bold
|
38
|
+
|
39
|
+
img
|
40
|
+
+transition(all, .3s, ease-in-out)
|
41
|
+
|
42
|
+
.content-left
|
43
|
+
%h3
|
44
|
+
buttons
|
45
|
+
|
46
|
+
%p
|
47
|
+
.button.green
|
48
|
+
green button
|
49
|
+
.button.magenta
|
50
|
+
magenta button
|
51
|
+
|
52
|
+
%pre.code
|
53
|
+
= preserve do
|
54
|
+
:escaped
|
55
|
+
@import "mixins/buttons"
|
56
|
+
|
57
|
+
.button.magenta
|
58
|
+
+make-magenta-button()
|
59
|
+
+zoom-on-hover
|
60
|
+
|
61
|
+
.content-right
|
62
|
+
%h3
|
63
|
+
arrows
|
64
|
+
|
65
|
+
%p
|
66
|
+
.arrow-up
|
67
|
+
.arrow-down
|
68
|
+
|
69
|
+
%pre.code
|
70
|
+
= preserve do
|
71
|
+
:escaped
|
72
|
+
@import "mixins/arrows"
|
73
|
+
|
74
|
+
.arrow-up
|
75
|
+
+arrow-up(60px, 20px, #62bc19)
|
76
|
+
+inline-block
|
@@ -1 +1,13 @@
|
|
1
|
-
|
1
|
+
|
2
|
+
%h1
|
3
|
+
easy-html-generator - It speeds up your web developement ...easy! =)
|
4
|
+
|
5
|
+
- partials= ['_dry',
|
6
|
+
'_haml_sass_coffee',
|
7
|
+
'_sass_mixins',
|
8
|
+
'_inline_coffee_and_sass',
|
9
|
+
'_bower_and_grunt']
|
10
|
+
|
11
|
+
- partials.each do |partial|
|
12
|
+
.section
|
13
|
+
= render_partial "index/#{partial}"
|
@@ -0,0 +1,7 @@
|
|
1
|
+
= javascript_include_tag 'https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'
|
2
|
+
= javascript_include_tag 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js'
|
3
|
+
/[if lt IE 9]
|
4
|
+
= javascript_include_tag 'https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js'
|
5
|
+
= javascript_include_tag 'https://oss.maxcdn.com/respond/1.4.2/respond.min.js'
|
6
|
+
%script
|
7
|
+
var ltie9 = true
|
@@ -0,0 +1,12 @@
|
|
1
|
+
%title
|
2
|
+
easy-html-generator #demo
|
3
|
+
|
4
|
+
= meta_tag_http 'Content-Type', 'text/html; charset=utf-8'
|
5
|
+
= meta_tag_http 'X-UA-Compatible', 'IE=edge'
|
6
|
+
= meta_tag 'robots', 'noindex,follow,noodp,noydir'
|
7
|
+
= meta_tag 'description', ''
|
8
|
+
= meta_tag 'keywords', ''
|
9
|
+
= meta_tag 'viewport', 'width=device-width, initial-scale=1.0'
|
10
|
+
|
11
|
+
= link_tag 'favicon.ico', 'icon', 'image/x-icon'
|
12
|
+
= link_tag 'favicon.ico', 'shortcut icon', 'image/x-icon'
|
@@ -0,0 +1,9 @@
|
|
1
|
+
|
2
|
+
= stylesheet_link_tag 'http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css'
|
3
|
+
|
4
|
+
|
5
|
+
= stylesheet_link_tag 'http://fonts.googleapis.com/css?family=Open+Sans:400'
|
6
|
+
= stylesheet_link_tag 'http://fonts.googleapis.com/css?family=Open+Sans:400italic'
|
7
|
+
= stylesheet_link_tag 'http://fonts.googleapis.com/css?family=Open+Sans:600'
|
8
|
+
= stylesheet_link_tag 'http://fonts.googleapis.com/css?family=Open+Sans:700'
|
9
|
+
= inline_stylesheet_link_tag 'app.css'
|
@@ -0,0 +1 @@
|
|
1
|
+
|
data/src/demo/views/layout.haml
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
!!!
|
2
2
|
%html{lang: 'de'}
|
3
3
|
%head
|
4
|
+
= render_partial 'layout/_assets.metadata'
|
5
|
+
= render_partial 'layout/_assets.stylesheets'
|
6
|
+
= render_partial 'layout/_assets.javascripts'
|
4
7
|
|
5
|
-
%body{class:
|
6
|
-
=
|
7
|
-
|
8
|
-
|
8
|
+
%body{class: body_class}
|
9
|
+
= render_partial 'layout/_header'
|
10
|
+
.container
|
11
|
+
= yield
|
12
|
+
= render_partial 'layout/_footer'
|
data/src/demo/views/plain.html
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
this is a plain html demo file ...it works ...but please use haml and the full pwer of ehg ;)
|
@@ -10,3 +10,15 @@ $grid-gutter-width: 0
|
|
10
10
|
.form-horizontal .form-group
|
11
11
|
margin-left: 0
|
12
12
|
margin-right: 0
|
13
|
+
|
14
|
+
.navbar-default
|
15
|
+
background: transparent
|
16
|
+
border: none
|
17
|
+
border-radius: 0
|
18
|
+
|
19
|
+
.navbar-collapse
|
20
|
+
padding: 0
|
21
|
+
|
22
|
+
.container-fluid
|
23
|
+
margin: 0
|
24
|
+
padding: 0
|
@@ -40,3 +40,33 @@
|
|
40
40
|
@mixin min-width-lg
|
41
41
|
html.gte-1200 &
|
42
42
|
@content
|
43
|
+
|
44
|
+
// hide element in specific viewport range
|
45
|
+
@mixin hide-xs
|
46
|
+
html.lt-768 &
|
47
|
+
display: none
|
48
|
+
|
49
|
+
@mixin hide-sm
|
50
|
+
html.gte-768.lt-992 &
|
51
|
+
display: none
|
52
|
+
|
53
|
+
@mixin hide-md
|
54
|
+
html.gte-992.lt-1200 &
|
55
|
+
display: none
|
56
|
+
|
57
|
+
@mixin hide-lg
|
58
|
+
html.gte-1200 &
|
59
|
+
display: none
|
60
|
+
|
61
|
+
// classes for hiding elements
|
62
|
+
.hidden-xs
|
63
|
+
+hide-xs
|
64
|
+
|
65
|
+
.hidden-sm
|
66
|
+
+hide-sm
|
67
|
+
|
68
|
+
.hidden-md
|
69
|
+
+hide-md
|
70
|
+
|
71
|
+
.hidden-lg
|
72
|
+
+hide-lg
|