easy_html_generator 1.0.5 → 1.0.6
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/README.md +15 -5
- data/Rakefile +7 -5
- data/bin/ehg +7 -8
- data/docs/CONFIGURATION.md +3 -1
- data/docs/GENERATORS.md +3 -1
- data/docs/GETSTARTED.md +2 -0
- data/docs/HAMLTEMPLATING.md +111 -0
- data/easy_html_generator.gemspec +3 -3
- data/lib/easy_html_generator.rb +0 -12
- data/lib/easy_html_generator/checksum.rb +16 -0
- data/lib/easy_html_generator/generator/compile/base.rb +4 -1
- data/lib/easy_html_generator/generator/compile/haml.rb +1 -1
- data/lib/easy_html_generator/generator/compile/haml/context.rb +7 -7
- data/lib/easy_html_generator/generator/compile/haml/helper/activesupport.rb +36 -0
- data/lib/easy_html_generator/generator/compile/haml/helper/asset_helper.rb +13 -4
- data/lib/easy_html_generator/generator/compile/haml/layout.rb +4 -4
- data/lib/easy_html_generator/generator/minimize/css.rb +1 -1
- data/lib/easy_html_generator/generator/minimize/html.rb +1 -1
- data/lib/easy_html_generator/generator/minimize/js.rb +1 -1
- data/lib/easy_html_generator/generator/service/analytics.rb +4 -0
- data/lib/easy_html_generator/project.rb +5 -0
- data/lib/easy_html_generator/rack_dispatcher.rb +1 -1
- data/lib/easy_html_generator/version.rb +1 -1
- data/lib/easy_html_generator/workspace.rb +23 -0
- metadata +7 -6
- data/lib/easy_html_generator/generator/compile/haml/helper/activesupport_override.rb +0 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d07a17b32647e6e36affe56f1f8955efa48da46e
|
4
|
+
data.tar.gz: bb3959c6583bf927747c456756772bb0f9d494ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 779d74ab4c0732c436054a4fbadf1a324a2713ddfd8559cc39ac28b9653aa19c90f65ee56d49b46dad2a0fafa5cbc1e9fe91f7191e0a5aed9318a824f5f258f3
|
7
|
+
data.tar.gz: 3f2b4abc6cace1733293676b04ac720c370149a5d38db9f339d989854eed5b93031cee9419dec2dc611a0b7f24a9a162901dd79f6371ea72a92110567fe16596
|
data/README.md
CHANGED
@@ -13,11 +13,11 @@ This gem is a powerful and easy to use web development tool that helps developin
|
|
13
13
|
* [HeadJS](http://headjs.com/) for performance optimized resource loading
|
14
14
|
* [Bower](http://bower.io/) for javascript dependency management
|
15
15
|
* [Grunt](http://gruntjs.com/) for javascript based task management
|
16
|
-
*
|
17
|
-
*
|
18
|
-
* workspace
|
19
|
-
*
|
20
|
-
*
|
16
|
+
* analytics code injections for **visitor tracking**
|
17
|
+
* **minimizing** of coffee-, javascript-, sass-, css-, html-, haml-, png- and jpg files
|
18
|
+
* per **workspace shared** generator-, haml-helper-, static-, sass- and image files
|
19
|
+
* **inline** sass and coffee script in haml files, **inline_stylesheet_link_tag** and **inline_javascript_include_tag**
|
20
|
+
* **partitial templates** and **layout files** for haml
|
21
21
|
|
22
22
|
## Resources
|
23
23
|
|
@@ -32,6 +32,16 @@ This gem is a powerful and easy to use web development tool that helps developin
|
|
32
32
|
|
33
33
|
## Changes
|
34
34
|
|
35
|
+
#### Version 1.0.6
|
36
|
+
* locals for partials
|
37
|
+
* asset versions for images, scripts and styles
|
38
|
+
* content_for haml implementation
|
39
|
+
* rake task clean added, cleans dist path `ehg --clean`
|
40
|
+
* rake task generate cleans now dist path
|
41
|
+
* minimize generators now adding prefix to file extension only
|
42
|
+
* fix default layout fallback
|
43
|
+
* add description for haml templating (docs/HAMLTEMPLATING.md)
|
44
|
+
|
35
45
|
#### Version 1.0.5
|
36
46
|
* refactor Generator::* and clean up code
|
37
47
|
* implement Generator::Service::Sitemap
|
data/Rakefile
CHANGED
@@ -6,11 +6,13 @@ require 'rspec/core/rake_task'
|
|
6
6
|
|
7
7
|
desc 'generate one or all project ditributions'
|
8
8
|
task :generate do |project|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
9
|
+
EasyHtmlGenerator::Workspace.clean_dist_folder project
|
10
|
+
EasyHtmlGenerator::Workspace.generate project
|
11
|
+
end
|
12
|
+
|
13
|
+
desc 'remove all files inside of the dist folder'
|
14
|
+
task :clean do |project|
|
15
|
+
EasyHtmlGenerator::Workspace.clean_dist_folder project
|
14
16
|
end
|
15
17
|
|
16
18
|
desc 'Starts the rack server, see config.ru'
|
data/bin/ehg
CHANGED
@@ -20,14 +20,13 @@ class EhgOptparse
|
|
20
20
|
EasyHtmlGenerator.start_server(host, port)
|
21
21
|
end
|
22
22
|
|
23
|
-
opts.on('-g', '--generate [PROJECT]', '
|
24
|
-
project
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
end
|
23
|
+
opts.on('-g', '--generate [PROJECT]', '', 'generate one or all projects') do |project|
|
24
|
+
EasyHtmlGenerator::Workspace.clean_dist_folder project
|
25
|
+
EasyHtmlGenerator::Workspace.generate project
|
26
|
+
end
|
27
|
+
|
28
|
+
opts.on('--clean [PROJECT]', '', 'clean one or all projects dist folder') do |project|
|
29
|
+
EasyHtmlGenerator::Workspace.clean_dist_folder project
|
31
30
|
end
|
32
31
|
|
33
32
|
opts.on('-i', '--init', 'initialise ehg workspace') do
|
data/docs/CONFIGURATION.md
CHANGED
@@ -81,4 +81,6 @@ Note that the repetitive config will be merged with the configuration from root
|
|
81
81
|
|
82
82
|
> "[Generators](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/GENERATORS.md)"
|
83
83
|
|
84
|
-
|
84
|
+
> "[Haml-Templating](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/HAMLTEMPLATING.md)"
|
85
|
+
|
86
|
+
>"[Contributing](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/CONTRIBUTING.md)"
|
data/docs/GENERATORS.md
CHANGED
@@ -207,4 +207,6 @@
|
|
207
207
|
|
208
208
|
> "[Configuration](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/CONFIGURATION.md)"
|
209
209
|
|
210
|
-
|
210
|
+
> "[Haml-Templating](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/HAMLTEMPLATING.md)"
|
211
|
+
|
212
|
+
>"[Contributing](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/CONTRIBUTING.md)"
|
data/docs/GETSTARTED.md
CHANGED
@@ -89,4 +89,6 @@ After a short time of generating you should see a directory listening in your br
|
|
89
89
|
|
90
90
|
> "[Generators](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/GENERATORS.md)"
|
91
91
|
|
92
|
+
> "[Haml-Templating](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/HAMLTEMPLATING.md)"
|
93
|
+
|
92
94
|
>"[Contributing](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/CONTRIBUTING.md)"
|
@@ -0,0 +1,111 @@
|
|
1
|
+
# Haml-Templating
|
2
|
+
Before the haml generator runs, all assets should be copied to dist folder, because the path_to_* methods are searching there for assets.
|
3
|
+
|
4
|
+
|
5
|
+
### layouts
|
6
|
+
All `*.html.haml` files will be compiled from the haml generator. A `*.html.haml` file alway has a layout, the default layout can be configured in the `project.yml` and is mostly `layout.haml`. To set a specific layout add `-# ehg layout: layout/layout.webdesign` in the first line of your `*.html.haml` file.
|
7
|
+
|
8
|
+
### content_for
|
9
|
+
Use it like described in the (actionview docs)[http://apidock.com/rails/ActionView/Helpers/CaptureHelper/content_for]
|
10
|
+
```ruby
|
11
|
+
- content_for(:body)
|
12
|
+
This is the body content
|
13
|
+
|
14
|
+
- #and later in your haml-files:
|
15
|
+
|
16
|
+
= content_for(:body)
|
17
|
+
```
|
18
|
+
|
19
|
+
|
20
|
+
If you want to use `content_for` you have to remember that there is no output buffer used by ehg for performance reasons. If you want to access `content_for` blocks in your layout.haml you have todo something like this:
|
21
|
+
```ruby
|
22
|
+
- body = yield
|
23
|
+
!!!
|
24
|
+
%html{lang: content_for(:language)}
|
25
|
+
%head
|
26
|
+
= content_for :javascripts
|
27
|
+
= content_for :stylesheets
|
28
|
+
|
29
|
+
%body{class: [body_class, 'loading']}
|
30
|
+
= body
|
31
|
+
```
|
32
|
+
|
33
|
+
|
34
|
+
### partials
|
35
|
+
Partials are reusable haml files. Per naming convention they start with a underline. The file `src/views/partials/_stylesheets.haml` can be rendered like:
|
36
|
+
```ruby
|
37
|
+
= render_partial 'partials/_stylesheets.haml'
|
38
|
+
```
|
39
|
+
|
40
|
+
You can also pass parameters to partials:
|
41
|
+
```ruby
|
42
|
+
= render_partial 'partials/_stylesheets.haml', {my_variable: 'my content'}
|
43
|
+
```
|
44
|
+
|
45
|
+
Inside `src/views/partials/_stylesheets.haml` you can access the parameter:
|
46
|
+
```ruby
|
47
|
+
= my_variable
|
48
|
+
```
|
49
|
+
|
50
|
+
|
51
|
+
### inline coffee and sass
|
52
|
+
We have made the usage of coffee and sass available to all project parts. Use inline coffee and sass as follow:
|
53
|
+
```ruby
|
54
|
+
= with_coffee do
|
55
|
+
:plain
|
56
|
+
window.head_conf =
|
57
|
+
screens: [
|
58
|
+
300
|
59
|
+
480
|
60
|
+
650
|
61
|
+
768
|
62
|
+
992
|
63
|
+
1200
|
64
|
+
]
|
65
|
+
```
|
66
|
+
|
67
|
+
For inline sass do:
|
68
|
+
```ruby
|
69
|
+
= with_sass do
|
70
|
+
:plain
|
71
|
+
body
|
72
|
+
color: green
|
73
|
+
```
|
74
|
+
|
75
|
+
You can also inline javascript and css files from the dist folder:
|
76
|
+
```ruby
|
77
|
+
= inline_javascript_include_tag 'lib/headjs/dist/1.0.0/head.min.js'
|
78
|
+
|
79
|
+
/[if lt IE 9]
|
80
|
+
= javascript_include_tag 'https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js'
|
81
|
+
= javascript_include_tag 'https://oss.maxcdn.com/respond/1.4.2/respond.min.js'
|
82
|
+
|
83
|
+
= inline_stylesheet_link_tag 'lib/bootstrap/dist/css/bootstrap.min.css'
|
84
|
+
= inline_stylesheet_link_tag 'webdesign.css'
|
85
|
+
```
|
86
|
+
|
87
|
+
### ActionView::Helper
|
88
|
+
You can use nearly all helpers included in (ActionView::Helpers)[http://api.rubyonrails.org/classes/ActionView/Helpers.html]. Note that the path will be resolved to the dist folder, take care that all generators that produce assets run befor the haml generator. If EHG can not resolve a path in the dist folder, it leaves the path as is. So you can use external paths.
|
89
|
+
```ruby
|
90
|
+
%span
|
91
|
+
= image_tag('my_image.png', alt: 'my image', class: 'my-image')
|
92
|
+
|
93
|
+
= meta_tag_http 'Content-Type', 'text/html; charset=utf-8'
|
94
|
+
= meta_tag 'description', (content_for(:description) || '')
|
95
|
+
= link_tag 'favicon.ico', 'icon', 'image/x-icon'
|
96
|
+
|
97
|
+
- content_for :footer_menu_links do
|
98
|
+
%ul
|
99
|
+
%li.link
|
100
|
+
= link_to 'my page', 'my_page.html'
|
101
|
+
```
|
102
|
+
|
103
|
+
# Resources
|
104
|
+
|
105
|
+
> "[Getting started](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/GETSTARTED.md)"
|
106
|
+
|
107
|
+
> "[Configuration](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/CONFIGURATION.md)"
|
108
|
+
|
109
|
+
> "[Generators](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/GENERATORS.md)"
|
110
|
+
|
111
|
+
>"[Contributing](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/CONTRIBUTING.md)"
|
data/easy_html_generator.gemspec
CHANGED
@@ -10,9 +10,9 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.licenses = 'MIT'
|
11
11
|
spec.authors = ["Tom Hanoldt", "Alex Illmayer"]
|
12
12
|
|
13
|
-
spec.summary = "This gem is a powerful and easy to use web development tool that helps developing modern web sites by generating static html
|
14
|
-
spec.description = "This gem is a powerful and easy to use web development tool that helps developing modern web sites by generating static html
|
15
|
-
It uses CoffeScript, Sass, Haml, Bootstrap, HeadJs, Bower, Grunt, Google Anlaytics and minimizes coffee-, javascript-, sass-, css-, png- and image-
|
13
|
+
spec.summary = "This gem is a powerful and easy to use web development tool that helps developing modern web sites by generating static html pages."
|
14
|
+
spec.description = "This gem is a powerful and easy to use web development tool that helps developing modern web sites by generating static html pages.
|
15
|
+
It uses CoffeScript, Sass, Haml, Bootstrap, HeadJs, Bower, Grunt, Google Anlaytics and minimizes coffee-, javascript-, sass-, css-, png- and image-files."
|
16
16
|
|
17
17
|
spec.email = ['monotom@gmail.com']
|
18
18
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec)/}) }
|
data/lib/easy_html_generator.rb
CHANGED
@@ -42,10 +42,6 @@ module EasyHtmlGenerator
|
|
42
42
|
Dir[File.dirname(__FILE__) + '/easy_html_generator/*.rb']
|
43
43
|
.each { |file| require file }
|
44
44
|
|
45
|
-
def self.projects
|
46
|
-
Workspace.projects
|
47
|
-
end
|
48
|
-
|
49
45
|
def self.dispatch(request)
|
50
46
|
path = request.env['REQUEST_PATH'] || request.env['PATH_INFO']
|
51
47
|
cleaned_path = clean_path path
|
@@ -73,14 +69,6 @@ module EasyHtmlGenerator
|
|
73
69
|
path
|
74
70
|
end
|
75
71
|
|
76
|
-
def self.generate_all
|
77
|
-
Workspace.projects.each { |_name, project| project.generate }
|
78
|
-
end
|
79
|
-
|
80
|
-
def self.generate_project(project)
|
81
|
-
Workspace.projects[project].generate
|
82
|
-
end
|
83
|
-
|
84
72
|
def self.rack_app
|
85
73
|
Rack::Builder.new do
|
86
74
|
use Rack::ShowExceptions
|
@@ -10,9 +10,17 @@ class EasyHtmlGenerator::Checksum
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def self.file_checksum(file)
|
13
|
+
return array_checksum(file) if file.is_a? Array
|
14
|
+
return array_checksum(Dir["#{folder}/**/*"]) if File.directory? file
|
13
15
|
checksum(File.read(file))
|
14
16
|
end
|
15
17
|
|
18
|
+
def self.array_checksum(files)
|
19
|
+
tmp = ''
|
20
|
+
files.each { |file| tmp += File.read(file) if File.file? file }
|
21
|
+
checksum(tmp)
|
22
|
+
end
|
23
|
+
|
16
24
|
def self.file_changed?(file, context = '')
|
17
25
|
key = build_key(file, context)
|
18
26
|
|
@@ -21,6 +29,14 @@ class EasyHtmlGenerator::Checksum
|
|
21
29
|
@file_checksums[key] != file_checksum(file)
|
22
30
|
end
|
23
31
|
|
32
|
+
def self.folder_changed?(folder, context = '')
|
33
|
+
key = build_key(folder, context)
|
34
|
+
|
35
|
+
return true unless @file_checksums.key? key
|
36
|
+
|
37
|
+
@file_checksums[key] != folder_checksum(folder)
|
38
|
+
end
|
39
|
+
|
24
40
|
def self.store_file(file, context = '')
|
25
41
|
key = build_key(file, context)
|
26
42
|
|
@@ -8,7 +8,6 @@ class EasyHtmlGenerator::Generator::Compile::Base <
|
|
8
8
|
def generate!(config)
|
9
9
|
walk_files(config) do |input_file, output_file|
|
10
10
|
next unless file_changed? input_file
|
11
|
-
|
12
11
|
do_file(input_file, output_file, config)
|
13
12
|
end
|
14
13
|
end
|
@@ -23,6 +22,10 @@ class EasyHtmlGenerator::Generator::Compile::Base <
|
|
23
22
|
end
|
24
23
|
end
|
25
24
|
|
25
|
+
def watch_files(config)
|
26
|
+
Dir["#{config.source}/**/*"]
|
27
|
+
end
|
28
|
+
|
26
29
|
def input_to_output_file(input_file, config)
|
27
30
|
input_file.sub(config.source, config.target)
|
28
31
|
end
|
@@ -15,7 +15,7 @@ class EasyHtmlGenerator::Generator::Compile::Haml <
|
|
15
15
|
scope = file_name.split('.').first
|
16
16
|
context = Context.new(@project, @config, scope)
|
17
17
|
layout = Layout.layout_from_file(@project.src_path_to(:views),
|
18
|
-
input_file, @config
|
18
|
+
input_file, @config)
|
19
19
|
|
20
20
|
do_input(input, layout, context, scope)
|
21
21
|
|
@@ -2,16 +2,14 @@
|
|
2
2
|
require 'action_view'
|
3
3
|
|
4
4
|
helper_path = 'easy_html_generator/generator/compile/haml/helper'
|
5
|
-
require "#{helper_path}/
|
5
|
+
require "#{helper_path}/activesupport.rb"
|
6
6
|
require "#{helper_path}/asset_helper.rb"
|
7
7
|
|
8
8
|
# this class represents the render context for a haml file
|
9
9
|
class EasyHtmlGenerator::Generator::Compile::Haml::Context
|
10
10
|
# Any properties of this object are available in the Haml templates.
|
11
11
|
attr_reader :project
|
12
|
-
|
13
|
-
include ActionView::Helpers
|
14
|
-
include ActivesupportOverride
|
12
|
+
include Activesupport
|
15
13
|
include AssetHelper
|
16
14
|
|
17
15
|
def initialize(project, config, scope)
|
@@ -20,6 +18,8 @@ class EasyHtmlGenerator::Generator::Compile::Haml::Context
|
|
20
18
|
@scope = scope
|
21
19
|
@input_folder = @project.src_path_to :views
|
22
20
|
|
21
|
+
_prepare_context # ActionView::Context
|
22
|
+
|
23
23
|
load_helper EasyHtmlGenerator::SHARED_HELPER_PATH
|
24
24
|
load_helper @project.src_path_to :helper
|
25
25
|
end
|
@@ -34,16 +34,16 @@ class EasyHtmlGenerator::Generator::Compile::Haml::Context
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
-
def render_partial(file_name)
|
37
|
+
def render_partial(file_name, locals={})
|
38
38
|
file_to_render = "#{@input_folder}/#{file_name}.haml"
|
39
39
|
if @scope
|
40
40
|
# Look for a partial prefixed with the current "scope"
|
41
41
|
# (which is just the name of the primary template being rendered).
|
42
|
-
scope_file = "#{@input_folder}/#{@scope}
|
42
|
+
scope_file = "#{@input_folder}/#{@scope}.#{file_name}.haml"
|
43
43
|
# Use it if it's there.
|
44
44
|
file_to_render = scope_file if File.exist? scope_file
|
45
45
|
end
|
46
|
-
Haml::Engine.new(File.read(file_to_render), @config).render
|
46
|
+
Haml::Engine.new(File.read(file_to_render), @config).render(self, locals)
|
47
47
|
rescue StandardError => e
|
48
48
|
raise e, "#{e.message} in #{file_name} ", e.backtrace
|
49
49
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
# this module overrides some active support methods for working paths etc.
|
4
|
+
module Activesupport
|
5
|
+
include ActionView::Context
|
6
|
+
include ActionView::Helpers
|
7
|
+
|
8
|
+
def path_to_stylesheet(path, _options = {})
|
9
|
+
return path if external_path?(path)
|
10
|
+
append_asset_version @project.uri_path_to(:styles, path)
|
11
|
+
end
|
12
|
+
|
13
|
+
def path_to_javascript(path, path_options={})
|
14
|
+
return path if external_path? path
|
15
|
+
append_asset_version @project.uri_path_to(:scripts, path)
|
16
|
+
end
|
17
|
+
|
18
|
+
def path_to_image(path)
|
19
|
+
return path if external_path? path
|
20
|
+
append_asset_version @project.uri_path_to(:images, path)
|
21
|
+
end
|
22
|
+
|
23
|
+
def append_asset_version(input)
|
24
|
+
time = Time.now.to_i
|
25
|
+
input.include?('?') ? "#{input}&t=#{time}" : "#{input}?t=#{time}"
|
26
|
+
end
|
27
|
+
|
28
|
+
alias_method :orig_content_for, :content_for
|
29
|
+
def content_for(name, content = nil, options = {}, &block)
|
30
|
+
if block_given?
|
31
|
+
options = content if content
|
32
|
+
content = capture_haml(&block).html_safe
|
33
|
+
end
|
34
|
+
orig_content_for(name, content , options)
|
35
|
+
end
|
36
|
+
end
|
@@ -1,10 +1,19 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
require 'coffee-script'
|
3
|
-
require 'uglifier'
|
4
2
|
|
5
3
|
# this module exposes additional features for haml files
|
6
4
|
module AssetHelper
|
7
|
-
|
5
|
+
def meta_tag(type, content)
|
6
|
+
'<meta name="' + type + '" content="' + content + '" />'
|
7
|
+
end
|
8
|
+
|
9
|
+
def meta_tag_http(type, content)
|
10
|
+
'<meta http-equiv="' + type + '" content="' + content + '" />'
|
11
|
+
end
|
12
|
+
|
13
|
+
def link_tag(source, relation, type = '')
|
14
|
+
type = " type='#{type}'" if type
|
15
|
+
'<link rel="' + relation + '" href="' + source + '"' + type + '/>'
|
16
|
+
end
|
8
17
|
|
9
18
|
def external_path?(path)
|
10
19
|
path.start_with?('//') || path.start_with?('http')
|
@@ -38,7 +47,7 @@ module AssetHelper
|
|
38
47
|
|
39
48
|
def headjs_javascript_include_tag(tag, path)
|
40
49
|
content_tag :script do
|
41
|
-
raw "head.load({'#{tag}': '#{
|
50
|
+
raw "head.load({'#{tag}': '#{path_to_javascript(path)}'});"
|
42
51
|
end
|
43
52
|
end
|
44
53
|
|
@@ -4,7 +4,7 @@
|
|
4
4
|
class EasyHtmlGenerator::Generator::Compile::Haml::Layout
|
5
5
|
@layouts = {}
|
6
6
|
|
7
|
-
def self.layout_from_file(haml_folder, template,
|
7
|
+
def self.layout_from_file(haml_folder, template, config)
|
8
8
|
first_line = File.readlines(template).first
|
9
9
|
|
10
10
|
if first_line.include? '-# ehg layout:'
|
@@ -14,9 +14,9 @@ class EasyHtmlGenerator::Generator::Compile::Haml::Layout
|
|
14
14
|
end
|
15
15
|
|
16
16
|
path = "#{haml_folder}#{name}.haml"
|
17
|
-
path = "#{haml_folder}
|
17
|
+
path = "#{haml_folder}#{config.default_layout}.haml" unless File.exist? path
|
18
18
|
|
19
|
-
load_from_file(path,
|
19
|
+
load_from_file(path, config.renderer) if should_load_from_file path
|
20
20
|
|
21
21
|
@layouts[path]
|
22
22
|
end
|
@@ -27,7 +27,7 @@ class EasyHtmlGenerator::Generator::Compile::Haml::Layout
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def self.load_from_file(layout_file, haml_config)
|
30
|
-
fail "layout not found '#{
|
30
|
+
fail "layout not found '#{layout_file}'" unless File.exist? layout_file
|
31
31
|
@layouts[layout_file] = Haml::Engine.new(File.read(layout_file),
|
32
32
|
haml_config)
|
33
33
|
EasyHtmlGenerator::Checksum.store_file(layout_file)
|
@@ -12,7 +12,7 @@ class EasyHtmlGenerator::Generator::Minimize::Css <
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def input_to_output_file(input_file, config)
|
15
|
-
super(input_file, config).gsub(
|
15
|
+
super(input_file, config).gsub(/\.css$/, "#{config.prefix_extension}.css")
|
16
16
|
end
|
17
17
|
|
18
18
|
def self.compress(input)
|
@@ -12,7 +12,7 @@ class EasyHtmlGenerator::Generator::Minimize::Html <
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def input_to_output_file(input_file, config)
|
15
|
-
super(input_file, config).gsub(
|
15
|
+
super(input_file, config).gsub(/\.html$/, "#{config.prefix_extension}.html")
|
16
16
|
end
|
17
17
|
|
18
18
|
def self.compressor
|
@@ -12,7 +12,7 @@ class EasyHtmlGenerator::Generator::Minimize::Js <
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def input_to_output_file(input_file, config)
|
15
|
-
super(input_file, config).gsub(
|
15
|
+
super(input_file, config).gsub(/\.js$/, "#{config.prefix_extension}.js")
|
16
16
|
end
|
17
17
|
|
18
18
|
def self.compress(input)
|
@@ -22,6 +22,11 @@ class EasyHtmlGenerator::Project
|
|
22
22
|
File.join(@dist_path, @config.paths.dist[type.to_sym], relative_path)
|
23
23
|
end
|
24
24
|
|
25
|
+
def clean_dist_path
|
26
|
+
FileUtils.rm_rf Dir["#{@dist_path}/**/*"]
|
27
|
+
EasyHtmlGenerator::Checksum.invalidate_all
|
28
|
+
end
|
29
|
+
|
25
30
|
def uri_path_to(type, relative_path = '')
|
26
31
|
uri_path = File.join(@config.paths.dist[type.to_sym], relative_path)
|
27
32
|
local_path = File.join(@dist_path, uri_path)
|
@@ -37,7 +37,7 @@ class EasyHtmlGenerator::RackDispatcher
|
|
37
37
|
|
38
38
|
def create_directory_listening_index_file
|
39
39
|
content = ''
|
40
|
-
EasyHtmlGenerator.projects.each do |_name, project|
|
40
|
+
EasyHtmlGenerator::Workspace.projects.each do |_name, project|
|
41
41
|
content += "<h3>#{project.name}</h3>"
|
42
42
|
project.list_dir.each do |file|
|
43
43
|
content += build_list_dir_row(file)
|
@@ -39,6 +39,29 @@ class EasyHtmlGenerator::Workspace
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
+
def self.clean_dist_folder(project=nil)
|
43
|
+
if project.nil?
|
44
|
+
paths = Dir["#{EasyHtmlGenerator::DIST_PATH}/*"]
|
45
|
+
else
|
46
|
+
project_instance = project_by_name project
|
47
|
+
raise LoadError "no such project to load -- #{project}"
|
48
|
+
paths = project_instance.dist_path
|
49
|
+
end
|
50
|
+
FileUtils.rm_rf paths
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.generate(project=nil)
|
54
|
+
if project.nil?
|
55
|
+
projects_to_generate = projects
|
56
|
+
else
|
57
|
+
project_instance = project_by_name project
|
58
|
+
raise LoadError "no such project to load -- #{project}"
|
59
|
+
projects_to_generate = {project => project_instance}
|
60
|
+
end
|
61
|
+
|
62
|
+
projects_to_generate.each { |_name, project| project.generate }
|
63
|
+
end
|
64
|
+
|
42
65
|
def self.project_instance_from_path(path)
|
43
66
|
name = path.split('/').last.sub('/', '')
|
44
67
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easy_html_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Hanoldt
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-09-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rack
|
@@ -320,8 +320,8 @@ dependencies:
|
|
320
320
|
- !ruby/object:Gem::Version
|
321
321
|
version: '0'
|
322
322
|
description: |-
|
323
|
-
This gem is a powerful and easy to use web development tool that helps developing modern web sites by generating static html
|
324
|
-
It uses CoffeScript, Sass, Haml, Bootstrap, HeadJs, Bower, Grunt, Google Anlaytics and minimizes coffee-, javascript-, sass-, css-, png- and image-
|
323
|
+
This gem is a powerful and easy to use web development tool that helps developing modern web sites by generating static html pages.
|
324
|
+
It uses CoffeScript, Sass, Haml, Bootstrap, HeadJs, Bower, Grunt, Google Anlaytics and minimizes coffee-, javascript-, sass-, css-, png- and image-files.
|
325
325
|
email:
|
326
326
|
- monotom@gmail.com
|
327
327
|
executables:
|
@@ -343,6 +343,7 @@ files:
|
|
343
343
|
- docs/CONTRIBUTING.md
|
344
344
|
- docs/GENERATORS.md
|
345
345
|
- docs/GETSTARTED.md
|
346
|
+
- docs/HAMLTEMPLATING.md
|
346
347
|
- easy_html_generator.gemspec
|
347
348
|
- lib/easy_html_generator.rb
|
348
349
|
- lib/easy_html_generator/checksum.rb
|
@@ -354,7 +355,7 @@ files:
|
|
354
355
|
- lib/easy_html_generator/generator/compile/coffee.rb
|
355
356
|
- lib/easy_html_generator/generator/compile/haml.rb
|
356
357
|
- lib/easy_html_generator/generator/compile/haml/context.rb
|
357
|
-
- lib/easy_html_generator/generator/compile/haml/helper/
|
358
|
+
- lib/easy_html_generator/generator/compile/haml/helper/activesupport.rb
|
358
359
|
- lib/easy_html_generator/generator/compile/haml/helper/asset_helper.rb
|
359
360
|
- lib/easy_html_generator/generator/compile/haml/layout.rb
|
360
361
|
- lib/easy_html_generator/generator/compile/sass.rb
|
@@ -446,5 +447,5 @@ rubygems_version: 2.4.6
|
|
446
447
|
signing_key:
|
447
448
|
specification_version: 4
|
448
449
|
summary: This gem is a powerful and easy to use web development tool that helps developing
|
449
|
-
modern web sites by generating static html
|
450
|
+
modern web sites by generating static html pages.
|
450
451
|
test_files: []
|
@@ -1,36 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
# this module overrides some active support methods for working paths etc.
|
4
|
-
module ActivesupportOverride
|
5
|
-
def javascript_include_tag(path)
|
6
|
-
'<script src="' + path_to_js(path) + '"></script>'
|
7
|
-
end
|
8
|
-
|
9
|
-
def meta_tag(type, content)
|
10
|
-
'<meta name="' + type + '" content="' + content + '" />'
|
11
|
-
end
|
12
|
-
|
13
|
-
def meta_tag_http(type, content)
|
14
|
-
'<meta http-equiv="' + type + '" content="' + content + '" />'
|
15
|
-
end
|
16
|
-
|
17
|
-
def link_tag(source, relation, type = '')
|
18
|
-
type = " type='#{type}'" if type
|
19
|
-
'<link rel="' + relation + '" href="' + source + '"' + type + '/>'
|
20
|
-
end
|
21
|
-
|
22
|
-
def path_to_stylesheet(path, _options = {})
|
23
|
-
return path if external_path?(path)
|
24
|
-
@project.uri_path_to(:styles, path)
|
25
|
-
end
|
26
|
-
|
27
|
-
def path_to_js(path)
|
28
|
-
return path if external_path? path
|
29
|
-
@project.uri_path_to(:scripts, path)
|
30
|
-
end
|
31
|
-
|
32
|
-
def path_to_image(path)
|
33
|
-
return path if external_path? path
|
34
|
-
@project.uri_path_to(:images, path)
|
35
|
-
end
|
36
|
-
end
|